1. 程式人生 > >Linux下產生隨機數碼的多種方法

Linux下產生隨機數碼的多種方法

文章目錄

第一種:藉助環境變數$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