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

简介: 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来产生即可。
————————————————
版权声明:本文为CSDN博主「小黑要上天」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/z19861216/article/details/131172357

目录
相关文章
|
8月前
|
Unix Linux Shell
linux中nohup和/dev/null,21
linux中nohup和/dev/null,21
156 0
|
8月前
|
Linux Windows
Linux中/dev/null和/dev/zero的作用
Linux中/dev/null和/dev/zero的作用
149 2
|
5月前
|
监控 Linux
在Linux中,如何检测并修复/dev/hda5?
在Linux中,如何检测并修复/dev/hda5?
|
8月前
|
安全 Unix Linux
探秘Linux特殊设备文件:(/dev/null,/dev/zero,/dev/random,/dev/urandom等)
探秘Linux特殊设备文件:(/dev/null,/dev/zero,/dev/random,/dev/urandom等)
655 1
|
2月前
|
Linux 网络安全 数据安全/隐私保护
Linux 超级强大的十六进制 dump 工具:XXD 命令,我教你应该如何使用!
在 Linux 系统中,xxd 命令是一个强大的十六进制 dump 工具,可以将文件或数据以十六进制和 ASCII 字符形式显示,帮助用户深入了解和分析数据。本文详细介绍了 xxd 命令的基本用法、高级功能及实际应用案例,包括查看文件内容、指定输出格式、写入文件、数据比较、数据提取、数据转换和数据加密解密等。通过掌握这些技巧,用户可以更高效地处理各种数据问题。
166 8
|
2月前
|
监控 Linux
如何检查 Linux 内存使用量是否耗尽?这 5 个命令堪称绝了!
本文介绍了在Linux系统中检查内存使用情况的5个常用命令:`free`、`top`、`vmstat`、`pidstat` 和 `/proc/meminfo` 文件,帮助用户准确监控内存状态,确保系统稳定运行。
672 6
|
2月前
|
Linux
在 Linux 系统中,“cd”命令用于切换当前工作目录
在 Linux 系统中,“cd”命令用于切换当前工作目录。本文详细介绍了“cd”命令的基本用法和常见技巧,包括使用“.”、“..”、“~”、绝对路径和相对路径,以及快速切换到上一次工作目录等。此外,还探讨了高级技巧,如使用通配符、结合其他命令、在脚本中使用,以及实际应用案例,帮助读者提高工作效率。
119 3
|
2月前
|
监控 安全 Linux
在 Linux 系统中,网络管理是重要任务。本文介绍了常用的网络命令及其适用场景
在 Linux 系统中,网络管理是重要任务。本文介绍了常用的网络命令及其适用场景,包括 ping(测试连通性)、traceroute(跟踪路由路径)、netstat(显示网络连接信息)、nmap(网络扫描)、ifconfig 和 ip(网络接口配置)。掌握这些命令有助于高效诊断和解决网络问题,保障网络稳定运行。
96 2
|
1月前
|
Linux Shell
Linux 10 个“who”命令示例
Linux 10 个“who”命令示例
62 14
Linux 10 个“who”命令示例
|
14天前
|
Linux
linux查看目录下的文件夹命令,find查找某个目录,但是不包括这个目录本身?
通过本文的介绍,您应该对如何在 Linux 系统中查看目录下的文件夹以及使用 `find` 命令查找特定目录内容并排除该目录本身有了清晰的理解。掌握这些命令和技巧,可以大大提高日常文件管理和查找操作的效率。 在实际应用中,灵活使用这些命令和参数,可以帮助您快速定位和管理文件和目录,满足各种复杂的文件系统操作需求。
41 8