From c9842c65b475fb11876202c626617b019643ef6b Mon Sep 17 00:00:00 2001 From: r Date: Sun, 26 Jan 2020 07:45:02 +0000 Subject: Update random id generation algorithm --- util/rand.go | 17 +++++++++++------ 1 file changed, 11 insertions(+), 6 deletions(-) (limited to 'util') diff --git a/util/rand.go b/util/rand.go index 212d6d3..ffe97a0 100644 --- a/util/rand.go +++ b/util/rand.go @@ -1,7 +1,8 @@ package util import ( - "math/rand" + "crypto/rand" + "math/big" ) var ( @@ -9,18 +10,22 @@ var ( runes_length = len(runes) ) -func NewRandId(n int) string { +func NewRandId(n int) (string, error) { data := make([]rune, n) for i := range data { - data[i] = runes[rand.Intn(runes_length)] + num, err := rand.Int(rand.Reader, big.NewInt(int64(runes_length))) + if err != nil { + return "", err + } + data[i] = runes[num.Int64()] } - return string(data) + return string(data), nil } -func NewSessionId() string { +func NewSessionId() (string, error) { return NewRandId(24) } -func NewCSRFToken() string { +func NewCSRFToken() (string, error) { return NewRandId(24) } -- cgit v1.2.3