Linux系統產生隨機數的6種方法
阿新 • • 發佈:2020-10-14
[root@node1 scripts]# echo $RANDOM 4245 [root@node1 scripts]# echo $RANDOM 22740 RANDOM的隨機數範圍為0~32767,因此,加密性不是很好,可以通過在輸出的隨機數後增加加密字串(就是和密碼生成有關的一個字串)的方式解決,最後再一起執行md5sum操作並擷取結果的後n位,這樣一來,就無法根據隨機數範圍0~32767來猜出具體結果了。 [root@node1 scripts]# echo king$RANDOM king22063 [root@node1 scripts]#echo king$RANDOM|md5sum 3fbe359b707854cabcbc96af50b717e4 - [root@node1 scripts]# echo king$RANDOM|md5sum|cut -c 8-15 eda56360
[root@node1 scripts]# openssl rand -base64 8 L6rJK6fykP4= [root@node1 scripts]# openssl rand -base64 80 7lWMxZTmmPwLCwkO24BxHX82CX2eOv7DGoS+Wsolo+L86dgfSQts7sokjDvG5uk2 6rQwrqqu1MIpFpyKtCNvEwSnh43/OWZAzqREA4NOkLA= 令數字與大小寫字元相結合,並且帶上特殊字元,可以達到很長的位數,這樣的隨機數很安全。
[root@node1 scripts]# date +%s%N 1602673097974691108
[root@node1 scripts]# head /dev/urandom|cksum 2360985463 1289 /dev/random裝置儲存著系統當前執行環境的實時資料。它可以看作系統在某個時候的唯一值,因此可以用作隨機數元資料。我們可以通過檔案讀取的方式,讀到裡面的資料。/dev/urandom這個裝置的資料與random裡的一樣。只是,它是非阻塞的隨機數發生器,讀取操作不會產生阻塞。
[root@node1 scripts]# cat /proc/sys/kernel/random/uuid 01018ade-6388-45d9-8fd0-a14e2032c5c3 UUID碼全稱是通用唯一識別碼(Universally Unique Identifier,UUID),它是一個軟體建構的標準,亦為自由軟體基金會(Open Software Foundation,OSF)的組織在分散式計算環境(Distributed Computing Environment,DCE)領域的一部分。 UUID的目的是讓分散式系統中的所有元素都能有唯一的辨識資訊,而不需要通過中央控制端來做辨識資訊的指定。如此一來,每個人都可以建立不與其他人發生衝突的UUID。在這樣的情況下,就不需要考慮資料庫建立時的名稱重複問題了。它會讓網路中任何一臺計算機所生成的UUID碼都是網際網路整個伺服器網路中唯一的編碼。它的原資訊會加入硬體、時間、機器當前執行資訊等。
mkpasswd命令依賴於資料包expect,因此必須通過“yum install expect–y”命令先安裝該資料包: [root@node1 scripts]# mkpasswd -l 9 -d 2 -c 3 -C 3 -s 1 3TYKmb*9k 相關引數說明如下: -l # (length of password, default = 9) #<==指定密碼長度。 -d # (min # of digits, default = 2) #<==指定密碼中數字的數量。 -c # (min # of lowercase chars, default = 2) #<==指定密碼中小寫字母的數量。 -C # (min # of uppercase chars, default = 2) #<==指定密碼中大寫字母的數量。 -s # (min # of special chars, default = 1) #<==指定密碼中特殊字元的數量。