良许Linux教程网 干货合集 Linux中的随机数知多少

Linux中的随机数知多少

Linux系统中,有两个重要的随机数生成软件模块,分别是/dev/random和/dev/urandom。

/dev/random模块是根据系统中的硬件活动(比如硬盘、鼠标、键盘等设备)的一些随机性信息来混合熵池处理,并且当系统熵池中的可用随机熵位数不够时会暂停等待系统硬件事件来增加更多的熵,再生成随机数。因此,/dev/random生成的是真随机数。

而/dev/urandom模块也是根据系统中硬件活动生成的

image-20230612230023565
image-20230612230023565

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

计算机是机器并按照一组指令工作(这就是我们创建程序使它们工作的原因)。这就是为什么不可能让机器想出任何随机数的原因。

image-20230612230019649
image-20230612230019649

为什么生成随机数如此重要?答案很简单。

安全问题

大多数加密算法都基于生成随机数,因为这些数字稍后将用于创建加密密钥。如果生成的数字在本质上不是完全随机的,就会使整个密码技术变得脆弱。

因为可以很容易地预测这些键。而这也是产生随机数最关键的原因。那么 Linux 如何应对这种情况呢?很简单,就是今天要讨论的话题。使用 /dev/random 和 /dev/random。

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

你猜对了。它们都用于生成随机数。它们都用于为内核的随机数生成器提供接口。随机数生成器会将来自外部源(包括设备驱动程序)的随机输入收集到熵池中。

但是两者之间存在巨大差异/dev/random/dev/urandom因为它们遵循不同的方法来生成随机数。

/dev/random 如何生成随机数

/dev/random 将仅返回熵池中的随机数,如果熵池为空或未表明足够的随机性,则将阻止``对 /dev/random 的读取。/dev/random“

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

/dev/urandom 将如何生成随机数

random(unlimited random) 将使用熵池返回随机数,但如果熵池为空,它将使用 SHA、MD5 或任何其他算法生成数据。这意味着,与 不同/dev/random,它不会阻止读取,并且即使没有足够的随机性也会继续为您提供随机数。

到底选择哪一个?

Random 和 Urandom 是为特定用例制作的。Urandom当持续需要随机数且其随机性不太重要时,使用。

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

需要注意的是,/dev/random相比于/dev/urandom安全性更高,但是当熵池中的可用随机熵位数较少时,可能导致访问/dev/random时卡死,而/dev/urandom因为产生的是伪随机数,因此在熵池中可用随机熵位数较少时,产生的随机数质量和安全性会受到影响。

使用 Urandom 生成随机密码

要使用 生成随机密码Urandom,您只需遵循给定的命令:

sudo echo

在 Linux 中使用 Urandom 生成随机密码

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

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

以上就是良许教程网为各位朋友分享的Linu系统相关内容。想要了解更多Linux相关知识记得关注公众号“良许Linux”,或扫描下方二维码进行关注,更多干货等着你 !

137e00002230ad9f26e78-265x300
本文由 良许Linux教程网 发布,可自由转载、引用,但需署名作者且注明文章出处。如转载至微信公众号,请在文末添加作者公众号二维码。
良许

作者: 良许

良许,世界500强企业Linux开发工程师,公众号【良许Linux】的作者,全网拥有超30W粉丝。个人标签:创业者,CSDN学院讲师,副业达人,流量玩家,摄影爱好者。
上一篇
下一篇

发表评论

联系我们

联系我们

公众号:良许Linux

在线咨询: QQ交谈

邮箱: yychuyu@163.com

关注微信
微信扫一扫关注我们

微信扫一扫关注我们

关注微博
返回顶部