[在使用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
)的随机字节的方法?
下潜一点,您会发现两者似乎都依赖于os.urandom
,而这又依赖于CryptGenRandom
,CryptGenRandom
:
在Windows上,它将使用according to the documentation。
现在依次将通常使用Microsoft CSP,并且所使用的内容取决于系统。