From aa04b225b983539340c3bdac555d3fde15aaed21 Mon Sep 17 00:00:00 2001 From: Plynksiy Nikita <39155883+trofen@users.noreply.github.com> Date: Wed, 18 Jun 2025 15:47:24 +0300 Subject: [PATCH] feat: Use crypto/rand for secure random string generation (#293) --- utils/tools.go | 10 +++++++--- 1 file changed, 7 insertions(+), 3 deletions(-) diff --git a/utils/tools.go b/utils/tools.go index 660c010..a34f541 100644 --- a/utils/tools.go +++ b/utils/tools.go @@ -2,9 +2,9 @@ package utils import ( "crypto/md5" + crand "crypto/rand" "encoding/json" "fmt" - "math/rand" "reflect" "runtime/debug" "strings" @@ -69,8 +69,12 @@ func RandomString(n int) string { const letterBytes = "abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789" length := len(letterBytes) b := make([]byte, n) - for i := range b { - b[i] = letterBytes[rand.Intn(length)] + randomBytes := make([]byte, n) + if _, err := crand.Read(randomBytes); err != nil { + return "" + } + for i, rb := range randomBytes { + b[i] = letterBytes[int(rb)%length] } return string(b) }