首頁  >  文章  >  運維  >  Linux系統怎麼產生隨機數

Linux系統怎麼產生隨機數

王林
王林原創
2020-06-29 10:32:235755瀏覽

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裡的一樣。只是,它是非阻塞的隨機數產生器,讀取操作不會產生阻塞。

以上是Linux系統怎麼產生隨機數的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn