gpt4 book ai didi

用于随机数生成的 Python pycrypto 库与 os.urandom

转载 作者:太空狗 更新时间:2023-10-29 17:56:14 24 4
gpt4 key购买 nike

我试图理解并弄清楚我是否应该使用 os.urandom()Crypto.Random.new() 来获得密码安全的伪随机数。

以下网站似乎建议使用 os.urandom():

https://github.com/mozilla/PyHawk/pull/13

但我真的不明白为什么,我在网上找到的其他网站也没有真正解释使用哪个网站。

如果有人知道哪一个对于加密使用是安全的,我将不胜感激!

让我特别担心的一件事是,我打算用它来生成随机数,但我担心有一天我生成了一些随机数,而第二天生成器的状态是一样的,它开始生成相同的“随机”数字。

最佳答案

我选择 os.urandom。在我检查过的所有(最近的)Python 实现中,它通过简单地打开到 /dev/urandom 或其他非 Linux 平台上的等效设备的无缓冲连接来做正确的事情.

另一方面,PyCrypto 的 Crypto.Random 是一个基于 Fortuna 的非常复杂的包装器。如此复杂的构造可能是为了减轻底层操作系统的一些缺陷。不幸的是:

  • 它仍然从 /dev/urandom(在 Linux 上)中提取熵,所以如果操作系统被破坏,PyCrypto 的 Crypto.Random 也会被破坏(破坏它的目的) )
  • 这个选择适得其反,因为很难处理 fork 和相同熵被不同进程重用的情况(参见 CVE-2013-1445)。
  • Fortuna 代码完全没有被单元测试覆盖,Fortuna 算法本身也没有测试向量。仅此一项就迫使您做出(大)信仰飞跃。

关于用于随机数生成的 Python pycrypto 库与 os.urandom,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20460061/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com