一些背景信息:我想在Red Hat服务器上运行脚本以从/ dev / random中读取一些数据,并使用Perl
unpack()命令将其转换为十六进制字符串,以备后用(基准数据库操作)。我在/ dev / random上运行了一些“ head
-1”,它看起来工作得很好,但是多次调用后,它还是会挂起。几分钟后,它将最终输出一小段文本,然后结束。
我切换到/ dev /
urandom(我真的不想这么做,它速度较慢,并且我不需要那种随机性),并且在前两三个呼叫中都可以正常工作,然后它也开始挂起。我想知道它是否是轰炸它的“
head”命令,所以我尝试使用Perl做一些简单的I / O,并且它也挂了。作为最后的努力,我使用“
dd”命令将其中的一些信息直接转储到文件中,而不是转储到终端中。我只问它只有1mb的数据,但是花了3分钟才能获得〜400字节,然后才杀死它。
我检查了进程列表,CPU和内存基本未受影响。到底是什么原因可能导致/ dev / random出现这种情况,我该怎么做才能防止/修复它?
编辑: 感谢您的帮助!看来我把随机和乌兰多姆混在一起了。我已经启动并运行了脚本。看来我今天学到了新东西。:)
在大多数Linux系统上,/dev/random
由环境收集的实际熵提供支持。如果您的系统没有从提供大量数据/dev/random
,则可能意味着您没有产生足够的环境随机性来为其供电。
我不确定为什么您认为/dev/urandom
质量“较慢”或更高。它重用内部熵池来生成伪随机性-使其质量略低-
但不会阻塞。通常,不需要高级或长期html" target="_blank">加密的应用程序可以/dev/urandom
可靠地使用。
尝试稍等片刻,然后重新阅读/dev/urandom
。您可能已经耗尽了内部熵池读取的太多信息/dev/random
,从而破坏了两个生成器-
允许您的系统创建更多的熵可以补充它们。
有关和的更多信息,请参见Wikipedia。/dev/random``/dev/urandom
问题内容: 例如,可以将其用于生成一次性填充密钥吗? 另外,它的来源是什么,如何将其用于生成 x 和 y 之间的随机数? 问题答案: 在这个宇宙中,唯一可以真正考虑的是基于量子效应的宇宙。常见的例子是放射性衰变。对于某些原子,您只能确定其半衰期,但不能确定下一个原子核会破裂。 关于-取决于实现。在Linux中,它用作熵源: Linux内核根据键盘时序,鼠标移动和IDE时序生成熵,并通过特殊文件/
问题内容: 我想使用或在C中使用。我该怎么做?我不知道如何用C处理它们,如果有人知道,请告诉我如何。谢谢。 问题答案: 通常,最好避免打开文件以获取随机数据,因为该过程中存在多个故障点。 在最近的Linux发行版,该系统调用可用来获取加密安全随机数,它不能失败 ,如果 是 没有 指定为标志和读取量最多256个字节。 截至2017年10月,OpenBSD,Darwin和Linux(带有)现在都已实现
我正在尝试新的Python Interactive Broker API,但我在第一步遇到了一些严重的速度问题... 下面的代码(见下文)重复了两次 直到数据被接收完毕 直到应用程序完全断开连接。。。 为什么这么慢?最好的加速方法是什么? 我还试图在后台持续运行它,以便只在运行时提交请求 但速度也非常慢。有什么建议吗
生成伪随机数。 Random, OutputVar [, Min, Max] Random, , NewSeed 参数 OutputVar 用来存储结果的变量名. 存储的浮点数的格式由 SetFormat 决定. Min 可以生成的最小数字, 可以为负数, 浮点数或 表达式. 如果省略, 最小的数字默认为 0. 允许的最小整数值为 -2147483648, 但浮点数没有限制. Max 可以生成的最
random() 方法 random() -- 返回介于 0 ~ 1 之间的一个随机数 语法: Math.random(); 返回值: 0.0 ~ 1.0 之间的一个伪随机数 示例: console.log( Math.random() ); 结果: >>> 0.8508360142443969
此方法返回随机生成的数字。 语法 (Syntax) RANDOM() 参数 (Parameters) None 返回值 (Return Value) 此方法返回随机生成的数字。 例子 (Example) /* Main program */ say RANDOM() 输出 (Output) 当我们运行上述程序时,我们将得到以下结果。 971