Linux系統怎么生成隨機數

linux系統生成隨機數的方法是:可以通過系統環境變量【$RANDOM】來實現,如【echo $RANDOM】。RANDOM的隨機數范圍有限,可以通過在隨機數后增加加密字符串的方法來解決。

Linux系統怎么生成隨機數

linux系統產生隨機數有多種方法,下面來介紹幾種:

(推薦學習:linux教程

方法一:通過系統環境變量($RANDOM)實現

[root@test?~]#?echo?$RANDOM 11595 [root@test?~]#?echo?$RANDOM 21625

RANDOM的隨機數范圍為0~32767,因此加密性不是很好。可以通過在隨機數后增加加密字符串(就是和密碼生成有關的字符串)的方式解決,最后再一起執行md5sum操作并截取結果的后n位,這樣一來,就無法根據隨機范圍0~32767猜出具體結果了。

示例:

[root@test?~]#?echo?"$RANDOM"|md5sum|cut?-c?5-15 4eaf70019cc

方法二:通過openssl產生隨機數

示例:

[root@test?~]#?openssl?rand?-base64?8 yB0maNWRoQw=

令數字與大小寫字符相結合,并帶上特殊字符,可以達到很長的位數,這樣的隨機數很安全。

方法三:通過時間(date)獲取隨機數

示例:

[root@test?~]#?date?+%s%N 1523402619479946400 [root@test?~]#?date?+%s%N 1523402622015235600

方法四:通過/dev/urandom配合chksum生成隨機數

[root@test?~]#?head?/dev/urandom|cksum 2866845253?2890 [root@test?~]#?head?/dev/urandom|cksum 2131526544?2440

/dev/random設備存儲著系統當前運行環境的實時數據。

它可以看作系統在某個時候的唯一值,因此可以用作隨機元數據。我們可以通過文件讀取的方式,讀到里面的數據。/dev/urandom這個設備的數據與random里的一樣。只是,它是非阻塞的隨機數發生器,讀取操作不會產生阻塞。

? 版權聲明
THE END
喜歡就支持一下吧
點贊14 分享