package util import ( "crypto/rand" "math/big" ) func RandString(length int) string { res := make([]byte, length) for i := range res { index := randIntn(len(tokenCharacters)) res[i] = tokenCharacters[index] } return string(res) } var ( tokenCharacters = []byte("abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789.-_!@#$%^&*()){}\\/=+,.><") randReader = rand.Reader ) func randIntn(n int) int { max := big.NewInt(int64(n)) res, err := rand.Int(randReader, max) if err != nil { panic("random source is not available") } return int(res.Int64()) }