27 lines
500 B
Go
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
|
||
|
}
|