```go
// 生成指定长度的字符串
func RandomStr(len int) (salt []byte) {
salt = make([]byte, len)
rnd := rand.New(rand.NewSource(time.Now().UnixNano()))
for i := 0; i < 6;i++ {
salt[i] = byte(rnd.Intn(95) + 32)
}
return
}
```
然后打印10次,:
```shell
salt = (T(Q]!
salt = (T(Q]!
salt = (T(Q]!
salt = (T(Q]!
salt = (T(Q]!
salt = (T(Q]!
salt = (T(Q]!
salt = s0H1(!
salt = s0H1(!
salt = s0H1(!
```
** WTF ** : 随机字符串有这么难写吗? 问题在哪里?
第 1 条附言 ·
做个结束吧...
这段代码,我用 for 循环试了几次,都是重复的随机数.因为这样写是不对的.
如果项目中用到了随机数...那么应该直接在 `main.go` 的 `init()` 文件里喂个随机数的种子.用的时候在 喂, 就可能导致,喂的数字一样而使生成的随机序列一致.
更多评论