mirror of
https://github.com/wgh136/nysoure.git
synced 2025-09-27 12:17:24 +00:00
Use crypto/rand for secure key generation in JWT
This commit is contained in:
@@ -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)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
Reference in New Issue
Block a user