1.2.4 生成随机字符串
一、用main/rand包生成随机字符串
main/rand包生成随机字符串main/rand实现了伪随机数生成器,可以生成整数型和浮点型伪随机数该包中根据生成伪随机数是否有种子(可以理解为初始化随机数),可以分为以下两类:
有种子:通常以时钟、输入输出等特殊及特殊节点作为参数进行初始化。该类型生成的随机数相比无种子时重复概率较低
无种子:可以理解为此时种子为1
案例:
// GetRandomString 获取随机字符串 func GetRandomString(num int) string { // 声明字符串 str := "0123456789abcdefghijklmnopqrstuvwxyz" // 转换成数组 bytes := []byte(str) result := []byte{} r := rand.New(rand.NewSource(time.Now().UnixNano())) for i := 0; i < num; i++ { result = append(result, bytes[r.Intn(len(bytes))]) } return string(result) } func main() { // 获取6位随机字符串 b := GetRandomString(6) fmt.Println(b) }结果:每次结果不同
二、使用crypot/rand包生成随机字符串
crypot/rand包生成随机字符串如果对随机性有要求的话,可以使用
crypot/rand包实现(速度相对会慢一些)crypot/rand包实现了用于加解密的更安全的随机数生成器,该包中常用的是Read()函数,定义如下:
三、用哈希值来表示随机字符串
除上面两个方法外,还有一个不常用的方法:用哈希值来表示随机字符串
可以通过
crypot/md5包的new()函数来实现
Last updated