Linux 中的 /dev/random 和 /dev/urandom 是什么?Linux 中的 /dev/random 和 /dev/urandom 是什么?Linux 中的 /dev/random 和 /dev/urandom 是什么?Linux 中的 /dev/random 和 /dev/urandom 是什么?
  • 业务
  • 目标
  • 支持
  • 关于
  • 联系我们
  • 登录
✕

Linux 中的 /dev/random 和 /dev/urandom 是什么?

发表 admin at 2025年2月28日
类别
未分类
标签

/dev/random 和 /dev/urandom 都用于在 Linux 中生成随机数。了解更多关于他们的信息。

这个问题的简短答案是“生成随机数的方法”。

我相信你也知道这一点。

但要了解 /dev/random 和 /dev/urandom 的使用,首先,您必须知道为什么生成随机数如此重要。

为什么生成随机数至关重要?

计算机是机器,按照一组指令工作(这就是为什么我们创建程序让它们工作)。

这就是为什么不可能要求机器思考任何随机数。

您可能会问,为什么生成随机数如此重要?答案很简单。

安全问题。

大多数加密算法都基于生成随机数,因为这些数字稍后将用于创建加密密钥。

如果生成的数字本质上不是完全随机的,那么整个密码技术就会变得很弱。

因为这些键可以很容易地预测。而这就是生成随机数最关键的原因。

那么Linux如何应对这种情况呢?很简单,这就是今天讨论的主题。

使用 /dev/random 和 /dev/random。

/dev/random 和 /dev/urandom 的使用

你猜对了。它们都用于生成随机数。

它们都用于为内核的随机数生成器提供接口。

随机数生成器将从外部源(包括设备驱动程序)收集随机输入到熵池中。

但 /dev/random 和 /dev/urandom 之间存在巨大差异,因为它们采用不同的方法来生成随机数。

/dev/random 如何生成随机数

/dev/random 只会返回熵池中的随机数,如果熵池为空或者没有表明足够的随机性,对 /dev/random 的读取将是已被阻止。

使其成为生成高质量随机数的理想选择。

/dev/urandom 如何生成随机数

随机(无限随机)将使用熵池返回随机数,但如果熵池为空,它将使用 SHA、MD5 或任何其他算法生成数据。

这意味着,与 /dev/random 不同,它不会阻止读取,并且即使没有足够的随机性,也会继续为您获取随机数。

选择哪一个?

“Random”和“Urandom”是针对特定用例而设计的。 Urandom 用于经常需要随机数且其随机性不太重要的情况。

而Random适用于安全性是首要考虑因素的任务,因为如果随机性不符合标准,它将阻止读取。

虽然 Urandom 的随机性仅比 Random 稍弱,但许多操作仍然使用它,但我建议您使用 Random (如果您坚持拥有强大的安全性)。

奖励:使用 Urandom 生成随机密码

要使用 Urandom 生成随机密码,您所要做的就是按照给定的命令操作:

sudo < /dev/urandom tr -dc A-Za-z0-9 | head -c14; echo

在这里,tr 命令将让您过滤 /dev/urandom 的输出,例如它会从 A 到 Z、a 到 z 获取您的密码代码>和<代码>0到9。

head 命令将生成一个 14 个字符的字符串(使用 -c14)。

包起来

在本指南中,我解释了 /dev/random 和 /dev/urandom 的基础知识,包括对随机性的需求。

如果您好奇,我使用 Urandom 它来生成密码,因为我发现它很强大,并且不太可能出现使用 Random 时可能遇到的错误。

我希望本指南对您有所帮助,如果您有任何疑问,请在评论中告诉我。

©2015-2025 Norria support@norria.com