[root@localhost ~]# echo $random
22658
random的隨機數範圍為0-32767,可以通過在輸出的隨機數後增加字串的方式,最後再一起執行md5sum操作並擷取結果的後n位。
[root@localhost ~]# echo test$random | md5sum
8b2e15402190b2e8013ba9cbf6e52eed -
[root@localhost ~]# openssl rand -base64 8
xsbca8d4sbc=
[root@localhost ~]# openssl rand -base64 20
piolmcqmrd7wddsbia1b2ioa3wi=
rand :生成偽隨機數
base64 :用base64編碼
[root@localhost ~]# date +%s%n
1582245833745396334
[root@localhost ~]# date +%s%n
1582245836618805122
%s:秒
%s%n:秒+納秒
(4)通過/dev/urandom配合chksum生成隨機數
[root@localhost ~]# head /dev/urandom | cksum
311343640 1978
[root@localhost ~]# head /dev/urandom | cksum
4125751600 1906
(5)通過uuid生成隨機數
uuid碼全稱是通用唯一識別碼(universally unique identifier,uuid),uuid的目的是讓分布式系統中的所有元素都能有唯一的標識資訊,而不需要通過**控制端來做辨識資訊的指定。如此一來,每個人都可以建立不與其他人發生衝突uuid。在這樣的情況下,就不需要考慮資料庫建立時的名稱重複問題了。它會讓網路中任何一台計算機所生成的uuid碼都是整個伺服器網路中唯一的編碼。它的原資訊會加入硬體、時間、機器當前執行資訊等。
[root@localhost ~]# cat /proc/sys/kernel/random/uuid
b3684023-1a6c-4140-be33-5ba74746b846
[root@localhost ~]# cat /proc/sys/kernel/random/uuid
5a67ab57-5fad-45af-be58-62221eb10138
(6)使用expect附帶的mkpasswd生成隨機數
[root@localhost ~]# which mkpasswd
/usr/bin/mkpasswd
[root@localhost ~]# rpm -qf /usr/bin/mkpasswd
expect-5.45-14.el7_1.x86_64
mkpasswd選項:
-l:指定密碼長度
-d:指定密碼中數字的數量
-c:指定密碼中小寫字母的數量
-c:指定密碼中大寫字母的數量
-s:指定密碼中特殊字元的數量
[root@localhost ~]# mkpasswd -l 8 -d 2 -c 2 -c 2 -s 2
=ls7ey6?
linux產生隨機數
函式rand 是真正的隨機數生成器,而srand 會設定供rand 使用的隨機數種子。函式rand 會返回乙個處於0和你所指定的數值 缺 省為1 之間的分數。如果你在第一次呼叫rand 之前沒有呼叫srand 那麼系統會為你自動呼叫srand 而使用同種子相同的數呼叫 srand 會導致相同的隨機數...
產生隨機數
先說明一下rand,這個函式用來產生偽隨機數。比如,產生1000的兩個隨機數,產生的兩個一般上是不同的,但如果要產生80個100以內的隨機數,僅用rand函式就不夠。因為產生80個100以內的隨機數,至少有兩個數相等的概率太大了 srand函式,並不能使產生的隨機數完全不同。你可以執行以下這串 in...
隨機數產生
c c 中取隨機數 在計算機中並沒有乙個真正的隨機數發生器,但是可以做到使產生的數字重複率很低,這樣看起來好象是真正的隨機數,實現這一功能的程式叫偽隨機數發生器。有關如何產生隨機數的理論有許多,如果要詳細地討論,需要厚厚的一本書的篇幅。不管用什麼方法實現隨機數發生器,都必須給它提供乙個名為 種子 的...