linux - 让linux缓冲/dev/random

标签 linux random buffer daemon entropy

我需要为我正在编写的应用程序提供合理的高质量随机数据。 Linux 为此提供了/dev/random 文件,这是理想的选择;但是,由于我的服务器是单服务虚拟机,因此它的熵源非常有限,这意味着/dev/random 很快就会耗尽。

我注意到,如果我从/dev/random 读取数据,在设备阻塞之前我只会获得 16 个左右的随机字节,同时等待更多的熵:

[duke@poopz ~]# hexdump /dev/random
0000000 f4d3 8e1e 447a e0e3 d937 a595 1df9 d6c5
<process blocks...>

如果我终止此过程,离开一个小时并重复该命令,同样只会生成 16 个字节左右的随机数据。

但是 - 如果我让命令运行相同的时间,则会收集更多、更多的随机数据。我由此假设,在给定的时间段内,系统会产生大量的熵,但 Linux 仅在您实际从/dev/random 读取时才利用它,如果不是,则丢弃它。如果是这样的话,我的问题是:

是否可以将 Linux 配置为缓冲/dev/random,以便从中读取产生更大的高质量随机数据突发?

对我来说,将/dev/random 缓冲作为程序的一部分并不困难,但我觉得在系统级别这样做会更优雅。我还想知道让 Linux 在内存中缓冲其随机数据是否会产生安全隐患。

最佳答案

听起来你需要一个 entropy deamon从其他来源为熵池提供数据。

关于linux - 让linux缓冲/dev/random,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5633877/

相关文章:

php - fopen() 返回错误 : failed to open stream: HTTP request failed! HTTP/1.1 404 未找到

linux - iptables 端口转发在重启后不会持续存在

java - 数组和随机值

c# - 使用 LINQ 从列表中随机选择一个匹配的字符串

java - 在 Java 中为 JOGL 释放直接缓冲区 native 内存

linux - 命令运行时执行循环

C# int.MinValue 的随机种子值不可预测

c++ - 基于strlen的意外成功复制

c - Scanf 在 do-while 循环中更改了错误的数组

linux - Makefiles输出目录