github.com/angenalZZZ/gofunc@v0.0.0-20210507121333-48ff1be3917b/data/random/string.go (about) 1 package random 2 3 import ( 4 "math/rand" 5 "os" 6 "time" 7 ) 8 9 var ( 10 Numbers = "0123456789" 11 LowerCase = "abcdefghijklmnopqrstuvwxyz" 12 UpperCase = "ABCDEFGHIJKLMNOPQRSTUVWXYZ" 13 //SpecialChars = "!\"#$%&'()*+,-./:;<=>?@[\\]^_`{|}~" 14 15 AlphaNumbers = Numbers + LowerCase + UpperCase 16 AlphaNumbersLower = Numbers + LowerCase 17 AlphaNumbersUpper = Numbers + UpperCase 18 ) 19 20 // R generator 21 var R = rand.New(rand.NewSource(time.Now().UnixNano() + int64(os.Getpid()))) 22 23 func Number(length int) string { return String(Numbers, length) } 24 func AlphaNumber(length int) string { return String(AlphaNumbers, length) } 25 func AlphaNumberLower(length int) string { return String(AlphaNumbersLower, length) } 26 func AlphaNumberUpper(length int) string { return String(AlphaNumbersUpper, length) } 27 28 func NumberBytes(length int) []byte { return Bytes(Numbers, length) } 29 func AlphaNumberBytes(length int) []byte { return Bytes(AlphaNumbers, length) } 30 func AlphaNumberLowerBytes(length int) []byte { return Bytes(AlphaNumbersLower, length) } 31 func AlphaNumberUpperBytes(length int) []byte { return Bytes(AlphaNumbersUpper, length) } 32 33 func Bytes(chooseFrom string, length int) []byte { 34 l := len(chooseFrom) 35 p := make([]byte, length) 36 for i := range p { 37 p[i] = chooseFrom[R.Intn(l)] 38 } 39 return p 40 } 41 42 func String(chooseFrom string, length int) string { 43 return string(Bytes(chooseFrom, length)) 44 }