PyCrypto模块中的Random从哪里得到它的随机字节?

问题描述 投票:0回答:1

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

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

  • from Crypto.Random import get_random_bytes
  • from secrets import token_bytes

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

python encryption random cryptography pycrypto
1个回答
0
投票

下潜一点,您会发现两者似乎都依赖于os.urandom,而这又依赖于CryptGenRandomCryptGenRandom

在Windows上,它将使用according to the documentation

现在依次将通常使用Microsoft CSP,并且所使用的内容取决于系统。

© www.soinside.com 2019 - 2024. All rights reserved.