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

2021-08-28 21:46:19 字數 2026 閱讀 9298

第二種:通過openssl產生隨機數

第三種:通過時間命令date產生隨機數

第四種:借助/dev/urandom裝置

第五種:通過/dev/random裝置產生uuid

第六種:expect非互動式程式控制下用mkpasswd命令

[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

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

xssp

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

8slhcsbaiyw=

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

nuzbw8ngkggqww==

[root@myhost ~]# date +%s

1539071518

[root@myhost ~]# date +%n

801398716

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

1539071555311467855

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

695854102 2295

[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

[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

linux產生隨機數

函式rand 是真正的隨機數生成器,而srand 會設定供rand 使用的隨機數種子。函式rand 會返回乙個處於0和你所指定的數值 缺 省為1 之間的分數。如果你在第一次呼叫rand 之前沒有呼叫srand 那麼系統會為你自動呼叫srand 而使用同種子相同的數呼叫 srand 會導致相同的隨機數...

linux產生隨機數的方法

random的隨機數的範圍為 0 32767,加密性不是很好,可以通過在輸出的隨機數後增加加密字串的方式來解決,最後在一起執行md5操作並擷取最後的n位,這樣一來,就無法通過範圍來猜測出具體的結果。令數字和大小寫相結合,並帶上特殊的字元,可以達到很長的位數,這樣的隨機數就很安全 chengmo ce...

linux產生隨機數的方式

root localhost echo random 22658random的隨機數範圍為0 32767,可以通過在輸出的隨機數後增加字串的方式,最後再一起執行md5sum操作並擷取結果的後n位。root localhost echo test random md5sum 8b2e15402190b...