草庐IT

ruby - Linux 上的 Ruby 是否使用/dev/random?

我正在创建一个pastebinapp我希望粘贴的ID是真正随机的。Linux上的/dev/random(托管在Linux机器上)使用噪声,因此它的输出是真正随机的。目前我使用此代码生成ID:self.guid=Digest::SHA1.hexdigest(Time.new.to_s+(0...50).map{('a'..'z').to_a[rand(26)]}.join)Ruby的rand函数是否使用/dev/random,如果不是,我如何在Ruby中使用/dev/random?谢谢。 最佳答案 很难documentedSecure

linux - linux bash 中的 $RANDOM 在启动时总是相同的

我遇到了这个问题,我很困惑。我在bash中使用$RANDOM作为linux启动过程最开始的测试字符串。非常有趣的是,我观察到每次linux启动时$RANDOM都是一样的。在我的例子中,它是18869。我只是将$RANDOM回显到文件中。我在每次启动时都观察到相同的数字。在那之后,$RANDOM似乎返回“真正的”随机数。echo"$RANDOMisateststring">>/tmp/test谁能解释一下这是什么原因? 最佳答案 这是Bash4.2源代码中variables.c的初始种子算法:staticvoidseedrand(){

linux - bash 函数 $RANDOM 应该具有均匀分布吗?

我知道bash函数$RANDOM生成一个范围内的随机整数,但是,这些数字是否应该遵循(或近似)均匀离散分布? 最佳答案 我刚刚打印了$RANDOM一百万次,将它变成了一个直方图,然后用gnumeric查看了它,图表显示了一个非常正态的分布!fornin`seq11000000`;doecho$RANDOM;done>random.txtgawk'{b=int($1/100);a[b]++};END{for(nina){printn","a[n]}}'random.txt>hist.csvgnumerichist.csv因此,如果您想

c - 使用 RNDADDENTROPY 将熵添加到/dev/random

我有一个设备会产生一些噪声,我想将其添加到嵌入式Linux系统中/dev/random设备的熵池中。我正在阅读manpageon/dev/random而且我不太了解您传递给RNDADDENTROPYioctl调用的结构。RNDADDENTROPYAddsomeadditionalentropytotheinputpool,incrementingtheentropycount.Thisdiffersfromwritingto/dev/randomor/dev/urandom,whichonlyaddssomedatabutdoesnotincrementtheentropycount.

linux - "cat/dev/random"与 "tail -f/dev/random"

声明cat/dev/random如预期的那样继续产生输出,但是tail-f/dev/random挂起(至少在OSX和SUSE上)。为什么后一条语句挂起? 最佳答案 tail-f做了几件事:找到流的结尾,通过读取直到到达EOF或通过查找结尾(/dev/random上不可用的操作)。备份一定长度(可能通过保留最近读取内容的适当长度的缓冲区,可能通​​过保留初始扫描期间最后N行的查找位置列表,或通过其他方式),然后打印该点和结尾之间的内容。继续打印超过该点的新内容,因为此类内容可用。如果没有尽头——如/dev/random的情况——那么第

c++ - 为什么从/dev/random 读取几乎总是阻塞?

我正在使用内核为2.6.38-12-generic的kubuntu我想在程序开始时从/dev/random中读取16个随机数。但是,它会在相对较短的时间后阻塞。填充/dev/random缓冲区需要多长时间?为什么需要这么长时间才能填满。我将其用作uuid生成器,并将其他随机源添加到种子中我的梅森捻线机。重要的是我不要得到重复的或重复的种子。如果我更改为/dev/urandom它工作正常。关于使用/dev/random而不是/dev/urandom的任何观点。 最佳答案 你真的不应该使用/dev/random。在已知的情况下,/dev

c -/dev/random 总是返回相同的序列

我打算使用/dev/random输出作为opensslkey生成的种子,然后我写了这个小程序只是为了检查我要做什么:#include#include#include#defineLEN128voiduc2hex(char*hex,unsignedchar*uc,unsignedshortuc_len){FILE*bp=fmemopen(hex,2*uc_len+1,"w");unsignedshorti;for(i=0;i我运行该程序一两次,一切似乎都运行良好,但随后我又以​​很短的顺序再次运行了四次,这是输出:[walter@eM350~]$./random0ee08c942ddf9

python - 在 Windows 上模拟/dev/random

我正在尝试将Python代码从Linux移植到Windows。在不同的地方,随机数是通过读取/dev/random生成的。有没有办法在Windows上模拟/dev/random?我正在寻找一种可以使代码在Linux上可用的解决方案... 最佳答案 如果你用的是Python,为什么还要关心具体的实现呢?只需使用therandommodule让它处理它。除此之外,(如果您不能依赖软件状态)os.urandom提供基于操作系统的随机值:OnaUNIX-likesystemthiswillquery/dev/urandom,andonWin

c - 多线程 random_r 比单线程版本慢

以下程序与描述的程序基本相同here.当我使用两个线程(NTHREADS==2)运行和编译程序时,我得到以下运行时间:real0m14.120suser0m25.570ssys0m0.050s当它仅使用一个线程(NTHREADS==1)运行时,即使它仅使用一个内核,我的运行时间也会显着缩短。real0m4.705suser0m4.660ssys0m0.010s我的系统是双核的,我知道random_r是线程安全的,我很确定它是非阻塞的。当相同的程序在没有random_r的情况下运行并且使用余弦和正弦的计算作为替代时,双线程版本的运行时间约为预期的1/2。#include#include#

linux - 如何使此 "action-packed, random data"在终端中回显?

好吧,这不是一个真正要实现任何实际目标的问题,但它仍然是一个严肃的问题,我希望它会被认真对待并且mods不会因此而惩罚我:)我相信你们中的大多数人都看过一些不错的Action片,其中CIA或FBI或黑客或任何其他“PCNerd”正在“检索一些信息”,当他们实际显示他们的屏幕/显示器/桌面时,有显示了很多随机数据,真是太刺激了:D所以,我们正在拍摄一部电影,我需要重建这样一个场景。我的操作系统是ubuntu10.10。我想我已经在互联网上的某个地方读到过那个shell实际上可以被记录然后回放,但我不确定它是如何工作的。基本上,任何可以解决问题的脚本/程序/代码/解决方案都非常受欢迎。如果