【发布时间】:2013-12-08 22:33:12
【问题描述】:
我试图理解并弄清楚是否应该使用os.urandom() 或Crypto.Random.new() 来获取密码安全的伪随机数。
以下网站似乎建议使用os.urandom():
https://github.com/mozilla/PyHawk/pull/13
但我真的不明白为什么,我在网上找到的其他网站并没有真正解释使用哪个网站。
如果有人知道哪一个对于加密使用是安全的,我将不胜感激!
我特别担心的一件事是,我打算用它来生成随机数,但我担心有一天我生成了一些随机数,第二天生成器的状态是一样的,它开始了生成相同的“随机”数字。
【问题讨论】:
-
@U2EF1 对于像 CSPRNG 的正确性这样重要且难以验证的事情,您必须提供的不仅仅是临时断言。
-
ssl.RAND_bytes()docs 建议阅读 Wikipedia 以了解 CSPRNG 的要求。 -
我特别担心的是,我打算用这些来生成随机数,但我担心有一天我会生成一些,而第二天生成器的状态是一样的,或者它会生成相同的“随机”(不是真的)数字。