有时需要给创建的用户设置密码,为了用户的安全,在设置密码时可以使用随机数进行设置,那么Linux产生随机数有下面六种方式:
- 系统环境变量$RANDOM
- openssl产生
- 时间date
- 系统设备
- uuid
- expect
1、系统环境变量$RANDOM
[root@localhost ~]# echo $RANDOM 26663 [root@localhost ~]# echo $RANDOM 5285 [root@localhost ~]# echo $RANDOM 5497 [root@localhost ~]# echo $RANDOM 23465
2、openssl产生
[root@localhost ~]# openssl rand -base64 8 cjc1Z4QvEGs= [root@localhost ~]# openssl rand -base64 10 jI+ZXxVxYgCRpA== [root@localhost ~]# openssl rand -base64 6 WGBAdKqM [root@localhost ~]# openssl rand -base64 1 nA==
3、时间date
[root@localhost ~]# date +%s 1612683160 [root@localhost ~]# date +%s%N 1612683165626189211 [root@localhost ~]# date +%s%N 1612683182106480530
4、系统设备
/dev/random设备存储的是系统当前运行环境的实时数据,它可以当作系统某时刻的的唯一数据,因此可以通过文件读取的方式来读取里面的数据;/dev/urandom这个设备的数据与/dev/random中的数据是一样的,不过它是非阻塞的,读取数据不会产生阻塞。
[root@localhost ~]# head /dev/urandom|cksum 2679943833 2195 [root@localhost ~]# head /dev/urandom|cksum 2788103193 3732
5、uuid
[root@localhost ~]# cat /proc/sys/kernel/random/uuid aebd5cd2-ae61-44d8-8cc8-111ef2113cfd [root@localhost ~]# cat /proc/sys/kernel/random/uuid 678ceee0-1411-45bf-ad94-43861db7dd21 [root@localhost ~]# cat /proc/sys/kernel/random/uuid 56d4b0d2-f51f-4706-a55d-6ffc61d90d6a
6、expect
[root@localhost ~]# yum install -y expect [root@localhost ~]# mkpasswd -l 8 q2m#WY0j [root@localhost ~]# mkpasswd -l 10 Tm9]kov2kX [root@localhost ~]# mkpasswd -l 12 94IhsjmRywq-
上述使用的方法产生的随机数长短不一,使用md5sum命令可以进行统一:
[root@localhost ~]# echo $RANDOM|md5sum 7e4429abc272aa8cd9d35ddef3551bdb - [root@localhost ~]# openssl rand -base64 5|md5sum 2e961c32a0f91515bbaf69cf934292ce - [root@localhost ~]# date +%s%N|md5sum 097609c9aa34368c8be9e27d1b9ba1ec - [root@localhost ~]# head /dev/urandom|cksum|md5sum 85d5170f7b1c2462a6aeb9602854ad03 - [root@localhost ~]# cat /proc/sys/kernel/random/uuid|md5sum bb265e5d301b3e41e2d186146536bef0 - [root@localhost ~]# mkpasswd -l 8|md5sum 426fa1ef6764ede8bab8557e935ecc59 -