标签: random

使用树莓派作为 /dev/random 的熵源

我想看看我是否可以使用我的 raspberry pi 的硬件 RNG作为/dev/random. 主要是看我是否可以让它工作,并为这个漂亮的小设备找到另一个用途。当然,我真的不需要增加笔记本电脑的熵。然而,一个有用的应用程序可能是将其用作具有 VM 的服务器的熵源,其中熵创建可能是一个问题。然而,它主要是一个爱好项目,看看我是否可以让它工作并回馈开源社区。

我想做的是在(本地)网络上设置我的 pi 并使用 ssh 将随机性传输到服务器池,在这种情况下是我的笔记本电脑。我认为只使用/dev/random从 pi读取的 bash 脚本应该没有问题。但是如何将/dev/randompi 的连接到/dev/random我的笔记本电脑的 。是否有添加随机数生成器的接口。

我希望我提出的设置很清楚。我希望我能得到一些评论,欢迎任何反馈。

linux random raspberry-pi

3
推荐指数
1
解决办法
2190
查看次数

如何从命令的输出中选择一个随机元素?

如果我有类似的东西:

echo 1 2 3 4 5 6
Run Code Online (Sandbox Code Playgroud)

或者

echo man woman child
Run Code Online (Sandbox Code Playgroud)

我必须在管子后面放什么才能挑出1 2 3 4 5 6或 的一个元素man woman child

echo 1 2 3 4 5 6 | command
3
Run Code Online (Sandbox Code Playgroud)

command-line random

3
推荐指数
1
解决办法
6644
查看次数

从类似 XKCD 的密码列表中生成四个随机单词

首先,我们知道如何从 txt 文件中输出随机行:

perl -MList::Util -e 'print List::Util::shuffle <>' words.txt
Run Code Online (Sandbox Code Playgroud)

但是我们需要一个通用的解决方案(perl通常安装在每个类unix的操作系统上)从txt文件中输出4个随机单词,我们该怎么做?

$ cat words.txt
...
alpha
beta
gamma
delta
epsilon
...
$
Run Code Online (Sandbox Code Playgroud)

“...”代表许多其他词。

示例输出(它们之间没有换行符,但最后需要一个 unix 换行符,空格应该将它们分开):

$ perl SOMEMAGIC words.txt
gamma alpha delta beta
$
Run Code Online (Sandbox Code Playgroud)

仅使用 perl,最短的解决方案 (oneliner)。

它将用作人类难忘的密码生成器:https : //xkcd.com/936/

由于 afaik perl 足以被命名为“随机生成器”。

具有 32768 行唯一行的常见英语单词表示例:https : //pastebin.ubuntu.com/23726760/

perl text-processing random

3
推荐指数
1
解决办法
621
查看次数

使用 rng-tools 没有显着增加“熵创造”的蜗牛率

我的系统(Linux 4.13.0-38-generic,16.04.1-Ubuntu,Intel® Celeron(R) CPU G3930 @ 2.90GHz × 2,主磁盘是 SSD)上的“熵创建”速度是不切实际的慢很多每秒小于 1 位。

注意:我用这个命令判断熵产生的速率:

watch -n1 cat /proc/sys/kernel/random/entropy_avail
Run Code Online (Sandbox Code Playgroud)

另一方面,底层 Linux CSPRNG 正在以每秒 187 Mb 的良好速度生成数据:

$ dd if=/dev/urandom of=/dev/null bs=1M count=1024 iflag=fullblock  
1024+0 records in
1024+0 records out
1073741824 bytes (1.1 GB, 1.0 GiB) copied, 5.74347 s, 187 MB/s
Run Code Online (Sandbox Code Playgroud)

我安装了rng-tools. 它正在/dev/hwrng按预期工作和阅读:

% systemctl status rng-tools
? rng-tools.service
   Loaded: loaded (/etc/init.d/rng-tools; bad; vendor preset: enabled)
   Active: active (running) since Sat 2018-04-28 13:17:17 PDT; 33s ago
     Docs: man:systemd-sysv-generator(8)
  Process: …
Run Code Online (Sandbox Code Playgroud)

random linux-kernel

3
推荐指数
1
解决办法
419
查看次数

使用 AWK 按随机顺序创建数字 1-6

我正在使用 AWK 生成 1 - 6 之间的值,这些值需要以随机顺序出现。我设法理清了创建正确数字范围的逻辑,但正在努力将它们读入数组以防止输出重复的数字。目前我的代码有这个;-

BEGIN{
FS=""
}{
for (i=1; i<=6; ++i) {
v=(int (rand()*6)+1   
print v }
Run Code Online (Sandbox Code Playgroud)

这当前输出六个数字,但显示重复 2, 2, 6, 1, 4, 2. 我需要输出的是类似 1, 4, 2, 5, 6, 3

任何人都可以为我的 AWK 程序帮助解决这个数组方面的问题吗?

非常感谢

awk random

3
推荐指数
1
解决办法
613
查看次数

从脚本创建类似于 /dev/random 的设备

我正在编写一个程序,我将为其创建一个脚本来生成特定格式的测试数据。

  1. 我如何创建一个/dev/myprogram工作方式类似于的设备/dev/random(最好在 的子目录中/dev/,例如/dev/test/myprogram:)?
  2. 我可以将任何脚本附加到此类设备,还是必须使用一些(哪些?)低级 API 来编写 C 程序?
  3. 我是否必须一次返回一个字节,或者我可以将设备设置为始终返回指定数量的字节(大于 1)吗?

我正在使用 Ubuntu 14.04,尽管我正在寻找一个适用于任何 *nix 系统的通用答案。

devices random

2
推荐指数
1
解决办法
914
查看次数

Solaris 中的随机数生成?

在 Solaris 中生成随机数的最佳方法是什么?

我似乎无法为此找到一个好的答案。大多数结果在我的环境中不起作用。有一个变量或命令 RAND 看起来很合乎逻辑,它会以某种类似于 $RANDOM 的方式工作,我在大多数搜索中看到它,但它总是产生 0。

我找到了这个命令

od -X -A n /dev/random | head -2
Run Code Online (Sandbox Code Playgroud)

这看起来很随机,但返回格式很奇怪(对我来说)。

     140774 147722 131645 061031 125411 053337 011722 165106
     066120 073123 040613 143651 040740 056675 061051 015211
Run Code Online (Sandbox Code Playgroud)

目前使用:

-bash-3.2$ uname -a
SunOS XXXXXXXXX 5.10 Generic_150400-29 sun4v sparc SUNW,SPARC-Enterprise-T5120
Run Code Online (Sandbox Code Playgroud)

shell bash solaris shell-script random

2
推荐指数
1
解决办法
1401
查看次数

基于模式提取N行随机样本

我有一个格式如下的文件:

train/t/temple/east_asia/00000025.jpg 94
train/t/temple/east_asia/00000865.jpg 94
...
train/s/swamp/00000560.jpg 92
train/s/swamp/00000935.jpg 92
....
train/m/mountain/00000428.jpg 68
train/m/mountain/00000126.jpg 68
Run Code Online (Sandbox Code Playgroud)

最后一个数字是班级编号。我有 50 个不同的类,每个类有 1000 行。我想从每个类中随机抽取一个大小为 N 的样本,并将结果存储在另一个文本文件中。

sed awk text-processing random

2
推荐指数
1
解决办法
238
查看次数

如何生成逗号分隔的随机整数列表

我正在尝试生成一个逗号分隔的1 到 10 之间整数的无序列表,我尝试了以下操作,但结果是一个有序列表:

seq -s "," 10 | shuf
Run Code Online (Sandbox Code Playgroud)

shell random numeric-data

2
推荐指数
3
解决办法
671
查看次数

Rpi Buster 上 RANDOM 和 URANDOM 的不同行为

系统是:

pi@titania:~ $ cat /etc/os-release 
PRETTY_NAME="Raspbian GNU/Linux 10 (buster)"
NAME="Raspbian GNU/Linux"
VERSION_ID="10"
VERSION="10 (buster)"
VERSION_CODENAME=buster
ID=raspbian
ID_LIKE=debian
HOME_URL="http://www.raspbian.org/"
SUPPORT_URL="http://www.raspbian.org/RaspbianForums"
BUG_REPORT_URL="http://www.raspbian.org/RaspbianBugs"

pi@titania:~ $ uname -a
Linux titania.####.net 5.10.103-v7l+ #1529 SMP Tue Mar 8 12:24:00 GMT 2022 armv7l GNU/Linux
Run Code Online (Sandbox Code Playgroud)

在生成一些随机数时,我观察到 RANDOM 和 URANDOM 之间存在不同的行为。以机智:

pi@titania:~ $ echo $URANDOM | md5sum | head -c 20; echo;
68b329da9893e34099c7

pi@titania:~ $ echo $URANDOM | md5sum | head -c 20; echo;
68b329da9893e34099c7

pi@titania:~ $ echo $URANDOM | md5sum | head -c 20; echo;
68b329da9893e34099c7

pi@titania:~ $ …
Run Code Online (Sandbox Code Playgroud)

random

2
推荐指数
1
解决办法
428
查看次数