From 0f95502b04d1640dd4d7c0556900fe596ebd26fc Mon Sep 17 00:00:00 2001 From: "1808837298@qq.com" <1808837298@qq.com> Date: Wed, 25 Sep 2024 16:30:33 +0800 Subject: [PATCH] =?UTF-8?q?feat:=20=E6=9B=B4=E6=96=B0=E4=BB=A4=E7=89=8C?= =?UTF-8?q?=E7=94=9F=E6=88=90=E7=AE=97=E6=B3=95?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- common/utils.go | 15 ++++++++++++--- 1 file changed, 12 insertions(+), 3 deletions(-) diff --git a/common/utils.go b/common/utils.go index 1a0313c..01c703d 100644 --- a/common/utils.go +++ b/common/utils.go @@ -2,6 +2,7 @@ package common import ( crand "crypto/rand" + "encoding/base64" "fmt" "github.com/google/uuid" "html/template" @@ -144,10 +145,10 @@ func GetUUID() string { const keyChars = "0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ" func init() { - rand.Seed(time.Now().UnixNano()) + rand.New(rand.NewSource(time.Now().UnixNano())) } -func GenerateRandomKey(length int) (string, error) { +func GenerateRandomCharsKey(length int) (string, error) { b := make([]byte, length) maxI := big.NewInt(int64(len(keyChars))) @@ -162,9 +163,17 @@ func GenerateRandomKey(length int) (string, error) { return string(b), nil } +func GenerateRandomKey(length int) (string, error) { + bytes := make([]byte, length*3/4) // 对于48位的输出,这里应该是36 + if _, err := crand.Read(bytes); err != nil { + return "", err + } + return base64.StdEncoding.EncodeToString(bytes), nil +} + func GenerateKey() (string, error) { //rand.Seed(time.Now().UnixNano()) - return GenerateRandomKey(48) + return GenerateRandomCharsKey(48) } func GetRandomInt(max int) int {