linux – 为什么经常读取/ dev / random逐字节块?
发布时间:2020-12-13 22:55:50 所属栏目:Linux 来源:网络整理
导读:以下调用快速返回: time dd if=/dev/random bs=1024 count=1.... 0+1 records in0+1 records out49 bytes (49 B) copied,0.000134028 s,366 kB/sreal 0m0.004suser 0m0.001ssys 0m0.002s 但是,如果/ dev / random被一个接一个地读取: for i in {1..500}; d
以下调用快速返回:
time dd if=/dev/random bs=1024 count=1 .... 0+1 records in 0+1 records out 49 bytes (49 B) copied,0.000134028 s,366 kB/s real 0m0.004s user 0m0.001s sys 0m0.002s 但是,如果/ dev / random被一个接一个地读取: for i in {1..500}; do dd if=/dev/random bs=1 count=1 status=none; done 循环读取几个字节,然后阻塞几秒钟,然后读取另外几个字节.在键盘上键入随机字符可以大大加快这个过程,就像随机池中没有足够的熵一样.毕竟循环需要很多分钟才能完成. 是什么让读/ dev / random逐字节比从它读取块慢很多? Uname -a: Linux ... 2.6.32-431.11.2.el6.centos.plus.x86_64 解决方法
答案在于你的问题:
49 bytes (49 B) copied,366 kB/s 所以它没有复制1024字节,就像告诉它,但只有少数然后停止.我认为这与你在循环之前在循环中获得的数量相同. / dev / random很慢,因为它需要从不同的源收集随机性,只要没有可用,它就不会输出任何内容. 如果您需要更快的数字,请使用/ dev / urandom. (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |