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

https://blog.csdn.net/u011500307/article/details/27203865

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值