当前位置: 首页>>技术教程>>正文


kernel – 如何使用/dev/(u)random

,

问题描述

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

我试过这个,但它说权限被拒绝。注意:我也尝试过以 root 身份。

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

最佳回答

它是一个类似于设备的文件,因此您可以执行 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 行随机字节

次佳回答

获取随机字节

如果您需要一定数量的随机字节,请从 /dev/urandom 读取该数量的字节。它是一个 “special file”,它被制作成一个可以从中读取随机数的文件。

使用 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 来处理棘手的部分。

第三种回答

如果您只想用公认的数字阅读它,您可以这样做

od -d /dev/random

第四种回答

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

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

参考资料

本文由Ubuntu问答整理, 博文地址: https://ubuntuqa.com/article/12435.html,未经允许,请勿转载。