Linux系統產生隨機數的方法是:可以透過系統環境變數【$RANDOM】來實現,如【echo $RANDOM】。 RANDOM的隨機數範圍有限,可以透過在隨機數後增加加密字串的方法來解決。
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裡的一樣。只是,它是非阻塞的隨機數產生器,讀取操作不會產生阻塞。
以上是Linux系統怎麼產生隨機數的詳細內容。更多資訊請關注PHP中文網其他相關文章!