没有时间生成随机字符串?

我知道如何使用 Runes & seeding rand.Init 在 go 中生成一个随机字符串time.UnixNano()。我的问题是,是否可以(使用 stdlib)在不使用当前时间戳(安全)的情况下播种 rand?

此外,我问因为不只是依靠时间为敏感操作生成随机字符串不安全/漏洞吗?


汪汪一只猫
浏览 108回答 2
2回答

德玛西亚99

对于敏感操作,请使用crypto/rand而不是math/rand:包 [crypto/] rand 实现了一个加密安全的随机数生成器。请注意,您不需要(不能) seed crypto/rand。

精慕HU

你可以用任何东西作为种子,它只需要一个整数。时间是常用的,因为它会改变,而且没有很多好的随机种子来源不是恒定的——如果你使用相同的种子,你会得到相同的值序列,所以通常你想要一些改变的东西.不安全吗?绝对地!如果您需要安全的随机数生成,则必须改用crypto/randcrypto/rand不提供播种方法,因为它是使用系统的加密强随机数生成器播种的。
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Go