使用硬件(True)随机数生成器的Linux脚本

时间:2018-10-28 03:13:05

标签: random rdrand

我想将RPI3中的内置硬件随机数生成器用于项目。目前,我只能使用/ dev / hwrng来保存二进制转储

a 0 0 1 0 2 0 3 1 4 1 5 2

对于我的项目,我需要从随机源(/ dev / hwrng)读取200位长的数据块,其频率为1读取/秒,并计算其中的1,然后将结果以十进制形式写入文本带有时间戳的文件,如下所示:

dd if=/dev/hwrng of=data.bin bs=25 count=1

十进制数应始终接近100,因为它是随机数据源,并且预期的1和0数应相同。 感谢您的帮助。

我确实提出了一个Perl脚本,该脚本接近了我不想要的东西,所以让我分享一下。我敢肯定,这可以用一种更清洁的方式完成...

datetime, value
11/20/2018 12:48:09, 105
11/20/2018 12:48:10, 103
11/20/2018 12:48:11, 97

1 个答案:

答案 0 :(得分:0)

尝试运行以下代码

for ((n=0; n<200; ++n)); do echo $(date '+%m/%d/%Y %H:%M:%S'), $(od -vAn -N1 -tu1 < /dev/hwrng); sleep 1; done

如果要将其保存到文件中,请在最后添加简单的重定向 > somefile

根据新请求更新,尝试运行以下代码

for ((n=0; n<10; ++n)); do
    count=0
    for ((s=0; s<200; ++s)); do
        if (( $(od -vAn -N1 -tu1 < /dev/hwrng) > 127 )); then ((++count)); fi
    done
    echo $(date '+%m/%d/%Y %H:%M:%S'), $count
    sleep 1
done