Linux下产生随机数码的多种方法

第一种:借助环境变量$RANDOM

[root@myhost ~]# echo $RANDOM
14535

##说明:linux系统下的环境变量$RANDOM的取值范围是:0–32767 。
1. 产生0-25范围内的数,用这个环境变量对26取余即可。
[root@myhost ~]# echo $(($RANDOM%26))
6

[root@myhost ~]# echo $((RANDOM%26))
11

##说明:第二个表达式RANDOM前面无$符号好像也可以。
2. 产生6位数的整数,用这个环境变量加上100000即可。
[root@myhost ~]# echo $(($RANDOM+100000))
117482

[root@myhost ~]# echo $((RANDOM+100000))
126058

##说明:第二个表达式RANDOM前面无$符号好像也可以。

3. 产生加密的随机数码,将随机数管道给命令md5sum命令即可。
[root@myhost ~]# echo $RANDOM |md5sum
6ee8cd13547eb044ad13ba014573af6f  -
4. 需要固定位数的随机数码,将随机数管道给命令md5sum命令再管道给cut命令即可。
[root@myhost ~]# echo $RANDOM |md5sum|cut -c 1-8
de3cfe23

第二种:通过openssl产生随机数

[root@myhost ~]# openssl rand -base64 3
xsSp

[root@myhost ~]# openssl rand -base64 8
8SlHCsBAiYw=

[root@myhost ~]# openssl rand -base64 10
nUzBw8ngKGGqWw==

第三种:通过时间命令date产生随机数

[root@myhost ~]# date +%s
1539071518

[root@myhost ~]# date +%N
801398716

[root@myhost ~]# date +%s%N
1539071555311467855

第四种:借助/dev/urandom设备

[root@myhost ~]# head /dev/urandom|cksum
695854102 2295

第五种:通过/dev/random设备产生uuid

[root@myhost ~]# cat /proc/sys/kernel/random/uuid
a3dfb0f2-f893-4e57-9d67-184a88d4cb5d

[root@myhost ~]# cat /proc/sys/kernel/random/uuid |cut -c 1-8
b80c60d8

第六种:expect非交互式程序控制下用mkpasswd命令

[root@myhost ~]# yum install -y expect

[root@myhost ~]#  mkpasswd   -l 3
impossible to generate 3-character password 
with 2 numbers, 2 lowercase letters, 2 uppercase letters and 1 special characters.

##说明:这种方法产生的密码必须大于等于7位,因为至少需要满足:2数字+2小写字母+2大写字母+1特殊字符

[root@myhost ~]#  mkpasswd   -l 7
6d)Iz9N

[root@myhost  ~]#  mkpasswd  -l 8
7BI*g6be

猜你喜欢

转载自blog.csdn.net/yuki5233/article/details/82997001