通读 Ruby Doc 2.3.0,其中说明了 Ruby 代码用于生成随机数的策略。
- openssl
- /dev/urandom
- Win32
但是看2.3.0 Source 我看不到任何/dev/urandom
被使用的迹象。
至少2.2.2有/dev/urandom
逻辑。
如果我错了,请纠正我。我只是在帮助自己理解随机数是如何在 Ruby 中生成的。
您必须查看Random.raw_seed
可在 中找到的实现random.c
。
而且由于文档没有提及它:在尝试读取/dev/urandom
代码之前尝试调用getrandom(2)
最近的 Linux 版本(请参阅 参考资料fill_random_bytes()
)。