我试图捕捉 /dev/random。但是只是块,没有给出一个字节的输出。(同时 /dev/urandom 的猫工作正常)。
root@test 07:22:08 ~ >cat /proc/sys/kernel/random/entropy_avail
36
root@test 07:22:10 ~ >cat /dev/random
这可能是什么原因?如何解决?
我正在使用带有 2.6 内核的嵌入式系统。
我试图捕捉 /dev/random。但是只是块,没有给出一个字节的输出。(同时 /dev/urandom 的猫工作正常)。
root@test 07:22:08 ~ >cat /proc/sys/kernel/random/entropy_avail
36
root@test 07:22:10 ~ >cat /dev/random
这可能是什么原因?如何解决?
我正在使用带有 2.6 内核的嵌入式系统。
来自维基百科:
当熵池为空时,来自 /dev/random 的读取将被阻塞,直到收集到额外的环境噪声。
熵池由键盘等环境噪声源填充。因此,如果您没有这个源(例如在您的嵌入式系统或无头服务器中),那么熵池是空的,并且(如上所述)/dev/random
将阻塞。
使用/dev/urandom
,安全
参考:http ://www.2uo.de/myths-about-urandom/
如果在早期启动有疑问,您是否收集了足够的熵。改为使用getrandom()
。[1]
[1] git 内核提交