如何使用 /dev/(u)random

如何使用 /dev/(u)random

如何/dev/(u)random在 Ubuntu 或任何 *nix 系统上使用?

我尝试了这个,但它说权限被拒绝。
注意:我也尝试以 root 身份进行操作。

/dev/(u)random
sudo /dev/(u)random
sudo -s; /dev/(u)random

答案1

它是一个类似设备的文件,因此您可以对其进行 cat 或从中复制等操作。例如:

dd if=/dev/urandom of=~/urandom_test count=4 bs=1024

创建一个包含 4K 随机字节的文件。

cat /dev/urandom > ~/urandom_test2 

将继续向该文件写入随机字节,直到您按下 Ctrl-C。请勿在性能较低的系统上执行此操作...

head -30 /dev/urandom > ~/urandom_test3

将写入 30 行随机字节

答案2

获取随机字节

如果需要一定数量的随机字节,请从 读取该数量的字节/dev/urandom
它是一个“特殊文件”,就像一个可以读取随机数的文件一样。

使用cat读取/dev/urandom是一个坏主意,因为它会尝试读到/dev/urandom最后 - 但它不会结束。

您可以使用head。但请注意按字节读取,而不是按行读取 - 因为行会被随机的换行符随机分隔。

因此,要将 30 个随机字节读入文件random.bytes,请使用:

head -c 30 /dev/urandom > random.bytes

您可以以普通用户的身份阅读它。

保留 /dev/random

通常,您应该使用/dev/urandom,而不是/dev/random

问题是/dev/random很难以正确的方式使用它 - 而很容易以错误的方式使用。错误地使用它起初是可行的,但后来会产生奇怪的 - 甚至是随机的 - 性能问题。有时。

当您使用时/dev/urandom,它会在内部利用/dev/random,处理棘手的部分。

答案3

如果你只想用识别的数字阅读它,你可以这样做

od -d /dev/random

答案4

我个人使用它来生成令牌:

dd if=/dev/urandom  count=1 bs=128 | sha512sum

相关内容