Linux下產生隨機數碼的多種方法
阿新 • • 發佈:2018-11-08
文章目錄
第一種:藉助環境變數$RANDOM
[[email protected] ~]# echo $RANDOM
14535
##說明:linux系統下的環境變數$RANDOM的取值範圍是:0–32767 。
1. 產生0-25範圍內的數,用這個環境變數對26取餘即可。
[[email protected] ~]# echo $(($RANDOM%26))
6
[ [email protected] ~]# echo $((RANDOM%26))
11
##說明:第二個表示式RANDOM前面無$符號好像也可以。
2. 產生6位數的整數,用這個環境變數加上100000即可。
[[email protected] ~]# echo $(($RANDOM+100000))
117482
[[email protected] ~]# echo $((RANDOM+100000))
126058
##說明:第二個表示式RANDOM前面無$符號好像也可以。
3. 產生加密的隨機數碼,將隨機數管道給命令md5sum命令即可。
[[email protected] ~]# echo $RANDOM |md5sum
6ee8cd13547eb044ad13ba014573af6f -
4. 需要固定位數的隨機數碼,將隨機數管道給命令md5sum命令再管道給cut命令即可。
[[email protected] ~]# echo $RANDOM |md5sum|cut -c 1-8
de3cfe23
第二種:通過openssl產生隨機數
[[email protected] ~]# openssl rand -base64 3
xsSp
[[email protected] ~]# openssl rand -base64 8
8SlHCsBAiYw=
[[email protected] ~]# openssl rand -base64 10
nUzBw8ngKGGqWw==
第三種:通過時間命令date產生隨機數
[[email protected] ~]# date +%s
1539071518
[[email protected] ~]# date +%N
801398716
[[email protected] ~]# date +%s%N
1539071555311467855
第四種:藉助/dev/urandom裝置
[[email protected] ~]# head /dev/urandom|cksum
695854102 2295
第五種:通過/dev/random裝置產生uuid
[[email protected] ~]# cat /proc/sys/kernel/random/uuid
a3dfb0f2-f893-4e57-9d67-184a88d4cb5d
[[email protected] ~]# cat /proc/sys/kernel/random/uuid |cut -c 1-8
b80c60d8
第六種:expect非互動式程式控制下用mkpasswd命令
[[email protected] ~]# yum install -y expect
[[email protected] ~]# 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特殊字元
[[email protected] ~]# mkpasswd -l 7
6d)Iz9N
[[email protected] ~]# mkpasswd -l 8
7BI*g6be