Linux中/dev/random和/dev/urandom的作用

1./dev/random和/dev/urandom介绍

在Linux环境中,我们会用到/dev/random和/dev/urandom,今天为大家讲讲/dev/random和/dev/urandom的作用以及使用场景。

1.1./dev/random介绍

/dev/random是一个特殊的字符设备文件,用于生成“高质量”的随机数。它通过收集系统上的环境噪声来产生随机数,只有当系统上有足够多的环境噪声时才能生成随机数,因此/dev/random生成的随机数是相对“高质量”的。但是当系统上没有足够多的环境噪声时,生成随机数的速度可能会“停止”,如果某些应用程序需要大量的随机数时,可能会导致其无法正常工作。

1.2./dev/urandom介绍

/dev/random也是一个特殊的字符设备文件,用于生成“伪”随机数。它通过使用内部熵池来生成随机数,而与环境噪声有多少无关,因此,/dev/urandom生成的随机数速度远远快于/dev/random产生的随机数,且不存在生成随机数时可能“停止”的场景。但是在系统刚刚启动时,内部熵池不够大,因而生成的随机数可能不够"随机",随着系统的持续运行,内部熵池会越来越大,那么生成的“伪”随机数的质量也会提高。

2./dev/random和/dev/urandom使用场景

2.1./dev/random使用场景

使用/dev/random生成8位随机密码

[root@rhel77 ~]# head -c 4 /dev/random |base64
yLIWeQ==
[root@rhel77 ~]# head -c 4 /dev/random |base64
UBMdGw==
[root@rhel77 ~]# head -c 4 /dev/random |base64
No/6hw==

当系统上没有足够多的环境噪声时,生成随机数的速度可能会“停止”

2.2./dev/urandom使用场景

使用/dev/urandom生成8位随机密码

[root@rhel77 ~]# tr -dc '0-9a-zA-Z' </dev/urandom | head -c 8
YP9VEjmU
[root@rhel77 ~]# tr -dc '0-9a-zA-Z' </dev/urandom | head -c 8
QcJhbNrs
[root@rhel77 ~]# tr -dc '0-9a-zA-Z' </dev/urandom | head -c 8
GYijbZwT
[root@rhel77 ~]# tr -dc '0-9a-zA-Z' </dev/urandom | head -c 8
kFQVk7rs
[root@rhel77 ~]# tr -dc '0-9a-zA-Z' </dev/urandom | head -c 8
RkB6I6Aj

上述命令将随机文件中其他的字符删除,仅保留大小写字母,数字的情况下,取前8位。

由于当系统上没有足够多的环境噪声时,生成随机数的速度可能会“停止”,而在实际环境中,使用/dev/urandom产生的随机数已足够安全,且产生速度非常快,因此当需要使用随机数时,建议使用/dev/urandom来产生即可。

  • 1
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

小黑要上天

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值