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
1 year ago
|
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()
|
||
|
}
|