32 lines
629 B
Go
32 lines
629 B
Go
package randomstring
|
|
|
|
import (
|
|
"math/rand"
|
|
"time"
|
|
)
|
|
|
|
func init() {
|
|
rand.Seed(time.Now().UnixNano())
|
|
}
|
|
|
|
func Gen(length int, lower bool, upper bool, num bool) string {
|
|
r := [3]string{"abcdefghijklmnopqrstuvwxyz", "ABCDEFGHIJKLMNOPQRSTUVWXYZ", "1234567890",}
|
|
|
|
chars := []rune("")
|
|
if lower {
|
|
chars = []rune(string(chars) + r[0])
|
|
}
|
|
if upper {
|
|
chars = []rune(string(chars) + r[1])
|
|
}
|
|
if num {
|
|
chars = []rune(string(chars) + r[2])
|
|
}
|
|
|
|
str := make([]rune, length)
|
|
for i := range str {
|
|
str[i] = chars[rand.Intn(len(chars))]
|
|
}
|
|
return string(str)
|
|
}
|