gpt4 book ai didi

python - PyCrypto 模块中的 Random 从哪里获取随机字节?

转载 作者:行者123 更新时间:2023-12-02 09:45:19 25 4
gpt4 key购买 nike

在使用 C++ 进行 WinAPI 编程期间,我注意到我们可以调用函数 CryptGenRandom 在 Windows CryptoAPI 的上下文中生成随机字节。如果我们深入了解系统详细信息,这些字节实际上是从 Windows 上的 advapi32.dll 生成的。

Python中,据我所知,我们有两种方法来生成可用于加密的随机字节:

  • 从 Crypto.Random 导入 get_random_bytes
  • 从 secret 导入 token_bytes

我想知道这些模块是否仍然在 Windows 上调用 advapi32.dll 来生成所需的随机字节。或者,他们是否有一种生成完全独立于 Windows 动态库(或 DLL)的随机字节的方法?

最佳答案

深入研究代码(您希望在其中获得文档),您会发现两者似乎都依赖于 os.urandom ,而后者又依赖于 CryptGenRandomaccording to the documentation:

On Windows, it will use CryptGenRandom().

现在反过来一般会使用Microsoft CSP,具体使用什么取决于系统。

通常,您希望依赖操作系统熵,因为为特定运行时获得足够的熵是很棘手的。如今,这些 RNG 是相当值得信赖的资源,而且速度也相对较快,因此实现 CSPRNG 通常没有多大意义,更不用说将熵源放入高级语言库中了。

关于python - PyCrypto 模块中的 Random 从哪里获取随机字节?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59132034/

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