|
|
|
|
@ -2,7 +2,9 @@ package util
|
|
|
|
|
|
|
|
|
|
import (
|
|
|
|
|
"context"
|
|
|
|
|
cryptoRand "crypto/rand"
|
|
|
|
|
"fmt"
|
|
|
|
|
"math/big"
|
|
|
|
|
"math/rand"
|
|
|
|
|
"path"
|
|
|
|
|
"path/filepath"
|
|
|
|
|
@ -34,6 +36,20 @@ func RandStringRunes(n int) string {
|
|
|
|
|
return string(b)
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
func RandStringRunesCrypto(n int) string {
|
|
|
|
|
b := make([]rune, n)
|
|
|
|
|
for i := range b {
|
|
|
|
|
num, err := cryptoRand.Int(cryptoRand.Reader, big.NewInt(int64(len(RandomVariantAll))))
|
|
|
|
|
if err != nil {
|
|
|
|
|
// fallback to math/rand on crypto failure
|
|
|
|
|
b[i] = RandomVariantAll[rand.Intn(len(RandomVariantAll))]
|
|
|
|
|
} else {
|
|
|
|
|
b[i] = RandomVariantAll[num.Int64()]
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
return string(b)
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
// RandString returns random string in given length and variant
|
|
|
|
|
func RandString(n int, variant []rune) string {
|
|
|
|
|
b := make([]rune, n)
|
|
|
|
|
|