Use crypto/rand for secure key generation in JWT

This commit is contained in:
2025-05-30 20:20:39 +08:00
parent 1063f3240d
commit 78ff27ae82

View File

@@ -1,9 +1,9 @@
package utils package utils
import ( import (
"crypto/rand"
"errors" "errors"
"github.com/golang-jwt/jwt/v5" "github.com/golang-jwt/jwt/v5"
"math/rand"
"os" "os"
"time" "time"
) )
@@ -19,13 +19,12 @@ func init() {
key = secret key = secret
} else { } else {
// Initialize the key with a random value // Initialize the key with a random value
chars := []rune("abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789")
key = make([]byte, 32) key = make([]byte, 32)
for i := range key { _, err := rand.Read(key)
r := rand.Intn(len(chars)) if err != nil {
key[i] = byte(chars[r]) panic("Failed to generate random key: " + err.Error())
} }
err = os.WriteFile(secretFilePath, key, 0644) _ = os.WriteFile(secretFilePath, key, 0644)
} }
} }