我知道如何使用 Runes & seeding rand.Init 在 go 中生成一个随机字符串time.UnixNano()。我的问题是,是否可以(使用 stdlib)在不使用当前时间戳(安全)的情况下播种 rand?此外,我问因为不只是依靠时间为敏感操作生成随机字符串不安全/漏洞吗?
2 回答
德玛西亚99
TA贡献1770条经验 获得超3个赞
对于敏感操作,请使用crypto/rand
而不是math/rand
:
包 [crypto/] rand 实现了一个加密安全的随机数生成器。
请注意,您不需要(不能) seed crypto/rand
。
精慕HU
TA贡献1845条经验 获得超8个赞
你可以用任何东西作为种子,它只需要一个整数。时间是常用的,因为它会改变,而且没有很多好的随机种子来源不是恒定的——如果你使用相同的种子,你会得到相同的值序列,所以通常你想要一些改变的东西.
不安全吗?绝对地!如果您需要安全的随机数生成,则必须改用crypto/rand
crypto/rand
不提供播种方法,因为它是使用系统的加密强随机数生成器播种的。
- 2 回答
- 0 关注
- 107 浏览
添加回答
举报
0/150
提交
取消