我对java.util.Random和java.security.SecureRandom类感兴趣。我发现Random使用系统时钟来生成种子,而SecureRandom使用/dev/random或/dev/urandom,但是这些文件在Linux上,而在Windows上使用的是一些混合CryptGenRandom。即使这是超级安全的函数,我们知道它从哪里取值?产生种子的地下室是什么?
发布于 2018-11-27 09:53:29
类java.security.SecureRandom使用操作系统主机提供的system。每个操作系统都有自己的进程来生成随机数。
在Windows中,SecureRandom使用CryptGenRandom方法,该方法是WinCrypt Windows库的一部分(包含在Windows库的Advap32.dll中)。
有关Windows函数的所有文档都可以在CryptGenRandom的Microsoft文档中获得
https://stackoverflow.com/questions/53496652
复制相似问题