Spaces:
Paused
Paused
| package random | |
| import ( | |
| "github.com/google/uuid" | |
| "math/rand" | |
| "strings" | |
| "time" | |
| ) | |
| func GetUUID() string { | |
| code := uuid.New().String() | |
| code = strings.Replace(code, "-", "", -1) | |
| return code | |
| } | |
| const keyChars = "0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ" | |
| const keyNumbers = "0123456789" | |
| func init() { | |
| rand.Seed(time.Now().UnixNano()) | |
| } | |
| func GenerateKey() string { | |
| rand.Seed(time.Now().UnixNano()) | |
| key := make([]byte, 48) | |
| for i := 0; i < 16; i++ { | |
| key[i] = keyChars[rand.Intn(len(keyChars))] | |
| } | |
| uuid_ := GetUUID() | |
| for i := 0; i < 32; i++ { | |
| c := uuid_[i] | |
| if i%2 == 0 && c >= 'a' && c <= 'z' { | |
| c = c - 'a' + 'A' | |
| } | |
| key[i+16] = c | |
| } | |
| return string(key) | |
| } | |
| func GetRandomString(length int) string { | |
| rand.Seed(time.Now().UnixNano()) | |
| key := make([]byte, length) | |
| for i := 0; i < length; i++ { | |
| key[i] = keyChars[rand.Intn(len(keyChars))] | |
| } | |
| return string(key) | |
| } | |
| func GetRandomNumberString(length int) string { | |
| rand.Seed(time.Now().UnixNano()) | |
| key := make([]byte, length) | |
| for i := 0; i < length; i++ { | |
| key[i] = keyNumbers[rand.Intn(len(keyNumbers))] | |
| } | |
| return string(key) | |
| } | |
| // RandRange returns a random number between min and max (max is not included) | |
| func RandRange(min, max int) int { | |
| return min + rand.Intn(max-min) | |
| } | |