From 666388a5edc27ff36f8a33c0d62114528ae4a0ff Mon Sep 17 00:00:00 2001 From: Sean Du Date: Tue, 28 Apr 2026 11:01:37 +0800 Subject: [PATCH] Use crypto/rand for token string generation Signed-off-by: Sean Du --- pkg/utils/utils.go | 18 ++++++++++-------- 1 file changed, 10 insertions(+), 8 deletions(-) diff --git a/pkg/utils/utils.go b/pkg/utils/utils.go index a6cf3e1..a77429b 100644 --- a/pkg/utils/utils.go +++ b/pkg/utils/utils.go @@ -4,14 +4,13 @@ package utils import ( + "crypto/rand" "encoding/hex" "encoding/json" "fmt" "log" - "math/rand" "os" "sync" - "time" ) var ( @@ -51,13 +50,16 @@ func XOR(s1, s2 []byte) []byte { return res } -func RandomStr(len int) string { - rand.Seed(time.Now().UnixNano()) - mRand := make([]byte, len) - rand.Read(mRand) - mRandStr := hex.EncodeToString(mRand)[0:len] +func RandomStr(length int) string { + if length <= 0 { + return "" + } - return mRandStr + mRand := make([]byte, length) + if _, err := rand.Read(mRand); err != nil { + return "" + } + return hex.EncodeToString(mRand)[:length] } func ToJSON(data any) string {