You cannot select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
30 lines
526 B
Go
30 lines
526 B
Go
package random
|
|
|
|
import (
|
|
"math/rand"
|
|
"strings"
|
|
"sync"
|
|
"time"
|
|
)
|
|
|
|
var r *rand.Rand
|
|
var mu sync.Mutex
|
|
|
|
func init() {
|
|
r = rand.New(rand.NewSource(time.Now().UnixNano()))
|
|
}
|
|
|
|
// RandomString returns a random string of 20 characters
|
|
func RandomString() string {
|
|
mu.Lock()
|
|
defer mu.Unlock()
|
|
var output strings.Builder
|
|
chars := "abcdedfghijklmnopqrstABCDEFGHIJKLMNOP"
|
|
for i := 0; i < 20; i++ {
|
|
random := r.Intn(len(chars))
|
|
randomChar := chars[random]
|
|
output.WriteString(string(randomChar))
|
|
}
|
|
return output.String()
|
|
}
|