在 Windows os 上为 java.security.SecureRandom 播种

Seed to java.security.SecureRandom on Windows os

我对 java.util.Randomjava.security.SecureRandom 类 感兴趣。我发现 Random 使用系统时钟生成种子,而 SecureRandom 使用 /dev/random/dev/urandom 但这些文件在 Linux 上,而在 Windows它使用了一些 mistic CryptGenRandom。即使这是超级安全的功能,我们是否知道它从哪里取值?生成种子的地下室是什么?

class java.security.SecureRandom 使用 OS 主机提供的系统 API。每个 OS 都有自己的随机数生成过程。

在 Windows 中 SecureRandom 使用方法 CryptGenRandom 是 WinCrypt Windows 库的一部分(包含在 Advapi32.dll 的 Windows 系统中图书馆)。

有关 Windows 函数的所有文档都可以在 CryptGenRandom

的 Microsoft 文档中找到