编写/ dev / random文件?


10

如果执行以下操作,会发生什么?

cat /dev/random > ~/randomFile # don't run

会一直写到驱动器空间用完之前,还是系统会看到此问题并停止它(例如无限符号链接循环)?


4
我只是想补充一下,在我年轻的时候,将随机连接到设备中值得花几个小时。帧缓冲区和声卡导致噪音,磁盘驱动器要求我进行低级格式化,这是美好的时光。
Bob Roberts

OT:'可执行文件/ dev / dsp?听起来很有趣”
sendmoreinfo

@BobRoberts我经历了类似的冒险,并取得了相似的结果。我还习惯了进入同事的Linux工作站,然后将DTMF音调成内部扬声器的声音,然后播放忙音,因此听起来好像他们的PC正在尝试传真某些内容。啊,美好的时光。
蒂姆·肯尼迪

@TimKennedy你怎么做?30毫米音频插孔是否有/ dev / ice?
tkbx

@tkbx好吧,我正在和自己约会,但是在那天,您可以将文件编入/ dev / audio,如果是声音文件(.wav),它将被播放。
蒂姆·肯尼迪

Answers:


22

它一直写到磁盘装满(通常仍有一些空间供root用户使用)。但是由于随机数据池有限,因此可能需要一段时间。

如果您需要一定数量的随机数据,请使用dd。对于1MB:

dd if=/dev/random iflag=fullblock of=$HOME/randomFile bs=1M count=1

回答相关问题时还提到了其他可能性。

但是,几乎在所有情况下都最好使用它/dev/urandom。如果内核认为它摆脱了熵,它就不会阻塞。为了更好地理解,您还可以阅读有关/ dev / urandom的神话

安装Haveged可以加快速度/dev/random,还可以提供更多信息/dev/urandom

编辑dd需要此fullblock选项,因为/ dev / random(与相反/dev/urandom)可以在熵池为空时返回不完整的块。

如果您dd不支持单位,请将其写出:

dd if=/dev/random iflag=fullblock of=$HOME/randomFile bs=1048576 count=1

7
100 MiB的高质量随机数据有点多...您应该获得一些字节,以播种一些高质量的伪随机数生成器,例如Mersenne扭曲器。如果应用程序很关键(从加密意义上来说),您必须继续阅读此事,并可能雇用专家。
vonbrand,

4
@vonbrand不,从中读取100MB /dev/urandom是可以的,没有理由不这样做。并且不要使用梅森捻线机进行加密。并且不要/dev/random在Linux上使用
吉尔(Gilles)'所以

3
@jofel:不,密码的输出/dev/urandom 可以使用。不要使用/dev/random
Thomas Pornin

@吉尔斯,也许我正在失去它...我同意你所说的一切,但看不到我说的有什么不同。
vonbrand

@Gilles&vonbrand:感谢您的评论,我改进了答案(示例中现在只有1MB,建议使用/ dev / urandom)。
jofel
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.