wireguard-dashboard/utils/rand.go
2024-07-05 14:41:35 +08:00

27 lines
500 B
Go

package utils
import (
"bytes"
"crypto/rand"
"math/big"
)
type random struct{}
func Random() random {
return random{}
}
func (random) RandStr(len int) string {
var container string
var str = "abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ1234567890"
b := bytes.NewBufferString(str)
length := b.Len()
bigInt := big.NewInt(int64(length))
for i := 0; i < len; i++ {
randomInt, _ := rand.Int(rand.Reader, bigInt)
container += string(str[randomInt.Int64()])
}
return container
}