如何在Linux中生成真正的随机数(非伪)

rke*_*erm 4 c++ linux security random

在Linux(C/C++代码)中创建安全随机数的(最佳)方法是什么,比一般rand()结果更随机,而不是伪作为OpenSSL BN_rand?

在Windows中,我发现这CryptGenRandom()是一个不错的选择.Linux中有没有相同的东西?

先感谢您.

Mar*_*ijn 16

你可以阅读/dev/random其中填充了熵池.维基百科网站上有一些很好的信息:http://en.wikipedia.org/wiki//dev/random

  • 结论:维基百科有一篇文章,其中`//`和`/`作为其网址的一部分.只是说. (12认同)

Mar*_*rre 5

由没有任何外部数据的计算机生成的"随机"数字是伪随机的.这意味着它们是用数学公式生成的.这些算法是可靠的,几乎可以用于所有目的.

要获得"真实"的随机数,您需要从外部进行干预.在各种程序中实现了一些解决方案(我记得有几个使用鼠标移动或大气噪声的解决方案).

正如Martijin所指出的那样,Linux和OSX上也有/ dev/random.它使用设备驱动程序收集的噪音.

我刚刚找到了一个Web服务:http://www.random.org/clients/http/