隨機(jī)數(shù)產(chǎn)生的6種辦法

方法一:
通過(guò)系統(tǒng)環(huán)境變量($RANDOM)實(shí)現(xiàn):

[root@web01 david]# echo $RANDOM
9236
[root@web01 david]# echo $(($RANDOM+11111111))
11128230
[root@web01 david]# echo $(($RANDOM+22222222))
22238612
[root@web01 david]# echo $(($RANDOM+45645689))
45648816

RANDOM的隨機(jī)數(shù)范圍為0-32767贱勃,因此,加密性不是很好,可以通過(guò)在隨機(jī)數(shù)后增加加密字符串(就是和密碼生成有關(guān)的字符串)的方式解決,最后再一起執(zhí)行md5sum操作并截取結(jié)果的后n位淆两,這樣一來(lái)浅蚪,就無(wú)法根據(jù)隨機(jī)范圍0-32767猜出具體結(jié)果了劲厌。
示例:

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

方法二:
通過(guò)openssl產(chǎn)生8位隨機(jī)數(shù),示例:

[root@web01 david]# openssl rand -base64 8
giKvexw0VXo=

令數(shù)字與大小寫字符相結(jié)合仇矾,并帶上特殊字符坎吻,可以達(dá)到很長(zhǎng)的位數(shù),這樣的隨機(jī)數(shù)很安全揪荣。

方法三:
通過(guò)時(shí)間(date)獲取隨機(jī)數(shù)筷黔,示例:

[root@web01 david]# date +%s%N
1561778055521886139
[root@web01 david]# date +%s%N
1561778057417827462

方法四:
通過(guò)/dev/urandom配合chksum生成隨機(jī)數(shù):

[root@web01 david]# head /dev/urandom|cksum
1400149309 2720
[root@web01 david]# head /dev/urandom|cksum
1664147293 2773

/dev/random設(shè)備存儲(chǔ)著系統(tǒng)當(dāng)前運(yùn)行環(huán)境的實(shí)時(shí)數(shù)據(jù)。它可以看作系統(tǒng)在某個(gè)時(shí)候的唯一值仗颈,因此可以用作隨機(jī)元數(shù)據(jù)佛舱。我們可以通過(guò)文件讀取的方式,讀到里面的數(shù)據(jù)挨决。/dev/urandom這個(gè)設(shè)備的數(shù)據(jù)與random里的一樣请祖。只是,它是非阻塞的隨機(jī)數(shù)發(fā)生器脖祈,讀取操作不會(huì)產(chǎn)生阻塞肆捕。

方法五:
通過(guò)UUID生成隨機(jī)數(shù),示例:

[root@web01 david]# cat /proc/sys/kernel/random/uuid
4cefb900-29ce-4515-88c4-7773d2aaa93d
[root@web01 david]# cat /proc/sys/kernel/random/uuid
c8f47170-b5a6-4c0a-a0ce-5900fa8692fc

UUID碼全稱是通用唯一識(shí)別碼(Universally Unique Identifier,UUID)它是一個(gè)軟件建構(gòu)的標(biāo)準(zhǔn),亦為自由軟件基金會(huì)的組織在分布式計(jì)算環(huán)境領(lǐng)域的一部分;
UUID的目的是讓分布式系統(tǒng)中的所有元素都能有唯一的辨別信息,而不需要通過(guò)中央控制端來(lái)做辨別信息的指定盖高,如此一來(lái)慎陵,每個(gè)人都可以創(chuàng)建不與其他人發(fā)生沖突的UUID,在這種情況下喻奥,就不需要考慮數(shù)據(jù)庫(kù)創(chuàng)建時(shí)的名稱重復(fù)問(wèn)題了席纽,它會(huì)讓網(wǎng)絡(luò)中任何一臺(tái)計(jì)算機(jī)所生成的UUID碼都是互聯(lián)網(wǎng)整個(gè)服務(wù)器網(wǎng)路中唯一的編碼。它的原信息會(huì)加入硬件映凳、時(shí)間胆筒、機(jī)器當(dāng)期那運(yùn)行信息等。

方法六:
使用expect附帶的mkpasswd生成隨機(jī)數(shù);mkpasswd命令依賴于數(shù)據(jù)包expect,因此必須通過(guò)"yum install expect -y"命令先安裝該數(shù)據(jù)包仆救。示例:

[root@web01 david]# mkpasswd -l 9 -d 2 -c 3 -s 1
1L~1Kusjm
[root@web01 david]# mkpasswd -l 9 -d 2 -c 3 -s 1
2kO1~riRb
[root@web01 david]# mkpasswd -l 9 -d 2 -c 3 -s 1
?ut30SXzg

相關(guān)參數(shù)說(shuō)明如下:

-l #      (length of password, default = 9)    #指定密碼長(zhǎng)度;

-d #      (min # of digits, default = 2)    #指定密碼中數(shù)字的數(shù)量;

-c #      (min # of lowercase chars, default = 2)        #指定密碼中小寫字母的數(shù)量;

-C #      (min # of uppercase chars, default = 2)    #指定密碼中大寫字母的數(shù)量;

-s #      (min # of special chars, default = 1)    #指定密碼中特殊字符的數(shù)量;

-p prog   (program to set password, default = /bin/passwd)    #程序設(shè)置密碼抒和,默認(rèn)是passwd;

上面的隨機(jī)數(shù)長(zhǎng)短不一,可以使用md5sum統(tǒng)一格式:

[root@test ~]# mkpasswd -l 9 -d 2 -c 3 -C 3 -s 1|md5sum|cut -c 2-10
8bbff4c99

[root@test ~]# cat /proc/sys/kernel/random/uuid|md5sum|cut -c 2-10
140edad51

[root@test ~]# head /dev/urandom|cksum|md5sum|cut -c 2-10
6c637bba0

[root@test ~]# date +%s%N|md5sum|cut -c 2-10
9da12f186

[root@test ~]# openssl rand -base64 80|md5sum|cut -c 2-10
d165ada49

[root@test ~]# echo "test$RANDOM"|md5sum|cut -c 2-10
145c845ee
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個(gè)濱河市彤蔽,隨后出現(xiàn)的幾起案子摧莽,更是在濱河造成了極大的恐慌,老刑警劉巖顿痪,帶你破解...
    沈念sama閱讀 218,941評(píng)論 6 508
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件镊辕,死亡現(xiàn)場(chǎng)離奇詭異,居然都是意外死亡蚁袭,警方通過(guò)查閱死者的電腦和手機(jī)征懈,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 93,397評(píng)論 3 395
  • 文/潘曉璐 我一進(jìn)店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來(lái)揩悄,“玉大人卖哎,你說(shuō)我怎么就攤上這事∩拘裕” “怎么了亏娜?”我有些...
    開(kāi)封第一講書人閱讀 165,345評(píng)論 0 356
  • 文/不壞的土叔 我叫張陵,是天一觀的道長(zhǎng)蹬挺。 經(jīng)常有香客問(wèn)我维贺,道長(zhǎng),這世上最難降的妖魔是什么巴帮? 我笑而不...
    開(kāi)封第一講書人閱讀 58,851評(píng)論 1 295
  • 正文 為了忘掉前任溯泣,我火速辦了婚禮,結(jié)果婚禮上晰韵,老公的妹妹穿的比我還像新娘发乔。我一直安慰自己,他們只是感情好雪猪,可當(dāng)我...
    茶點(diǎn)故事閱讀 67,868評(píng)論 6 392
  • 文/花漫 我一把揭開(kāi)白布栏尚。 她就那樣靜靜地躺著,像睡著了一般只恨。 火紅的嫁衣襯著肌膚如雪译仗。 梳的紋絲不亂的頭發(fā)上,一...
    開(kāi)封第一講書人閱讀 51,688評(píng)論 1 305
  • 那天官觅,我揣著相機(jī)與錄音纵菌,去河邊找鬼。 笑死休涤,一個(gè)胖子當(dāng)著我的面吹牛咱圆,可吹牛的內(nèi)容都是我干的笛辟。 我是一名探鬼主播,決...
    沈念sama閱讀 40,414評(píng)論 3 418
  • 文/蒼蘭香墨 我猛地睜開(kāi)眼序苏,長(zhǎng)吁一口氣:“原來(lái)是場(chǎng)噩夢(mèng)啊……” “哼手幢!你這毒婦竟也來(lái)了?” 一聲冷哼從身側(cè)響起忱详,我...
    開(kāi)封第一講書人閱讀 39,319評(píng)論 0 276
  • 序言:老撾萬(wàn)榮一對(duì)情侶失蹤围来,失蹤者是張志新(化名)和其女友劉穎,沒(méi)想到半個(gè)月后匈睁,有當(dāng)?shù)厝嗽跇?shù)林里發(fā)現(xiàn)了一具尸體监透,經(jīng)...
    沈念sama閱讀 45,775評(píng)論 1 315
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 37,945評(píng)論 3 336
  • 正文 我和宋清朗相戀三年航唆,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了胀蛮。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點(diǎn)故事閱讀 40,096評(píng)論 1 350
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡糯钙,死狀恐怖醇滥,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情超营,我是刑警寧澤,帶...
    沈念sama閱讀 35,789評(píng)論 5 346
  • 正文 年R本政府宣布阅虫,位于F島的核電站演闭,受9級(jí)特大地震影響,放射性物質(zhì)發(fā)生泄漏颓帝。R本人自食惡果不足惜米碰,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,437評(píng)論 3 331
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望购城。 院中可真熱鬧吕座,春花似錦、人聲如沸瘪板。這莊子的主人今日做“春日...
    開(kāi)封第一講書人閱讀 31,993評(píng)論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽(yáng)侮攀。三九已至锣枝,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間兰英,已是汗流浹背撇叁。 一陣腳步聲響...
    開(kāi)封第一講書人閱讀 33,107評(píng)論 1 271
  • 我被黑心中介騙來(lái)泰國(guó)打工, 沒(méi)想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留畦贸,地道東北人陨闹。 一個(gè)月前我還...
    沈念sama閱讀 48,308評(píng)論 3 372
  • 正文 我出身青樓,卻偏偏與公主長(zhǎng)得像,于是被迫代替她去往敵國(guó)和親趋厉。 傳聞我的和親對(duì)象是個(gè)殘疾皇子寨闹,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 45,037評(píng)論 2 355