package rand import ( "math/rand" "strconv" ) // 包含大小写和数字 func (rr *Rand) RandomString(n int) string { letters := []byte("abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ123456789") //var letters = []byte("abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ123456789") result := make([]byte, n) //rand.Seed(time.Now().Unix()) for i := range result { result[i] = letters[rand.Intn(len(letters))] } return string(result) } // 生成指定位数的数字字符串,第一位不为0 func (rr *Rand) RandomCode(n int) string { numbers := []byte("0123456789") numbers_no_zero := []byte("123456789") result := make([]byte, n) //rand.Seed(time.Now().Unix()) //code := fmt.Sprintf("%06v", rand.New(rand.NewSource(time.Now().UnixNano())).Int31n(1000000)) for i := range result { result[i] = numbers[rand.Intn(len(numbers))] } //阿里大于验证码短信首字母不能为0 if result[0] == 0 { { result[0] = numbers_no_zero[rand.Intn(len(numbers_no_zero))] } } return string(result) } // 6位随机验证码 func (rr *Rand) GetNum6() string { //deltaNumber := exponent(10,6) //baseNumber := exponent(10,7) //rand.Seed(time.Now().UnixNano()) code := rand.Intn(899999) + 100000 //code := rand.Intn(baseNumber-baseNumber-1) + deltaNumber res := strconv.Itoa(code) //转字符串返回 return res }