新聞中心
實(shí)現(xiàn)

隨機(jī)數(shù)在生成加密算法、加密碼、日期序列號(hào)、句子組合和密鑰等密碼學(xué),游戲、統(tǒng)計(jì)學(xué)、數(shù)學(xué)、模擬等領(lǐng)域有廣泛的應(yīng)用。linux有自帶的隨機(jī)數(shù)生成函數(shù):/dev/random及/dev/urandom,其中/dev/random獲取的則是安全的隨機(jī)數(shù),而/dev/urandom獲取的則是非安全的隨機(jī)數(shù)。可以利用兩者來(lái)獲取高效的隨機(jī)數(shù)在Linux中。
/dev/random主要通過(guò)分析系統(tǒng)的噪聲信號(hào)生成隨機(jī)數(shù),最初的背景噪聲默認(rèn)是溫度數(shù)據(jù),例如,可以創(chuàng)建一個(gè)隨機(jī)數(shù)文件:
$ cat /dev/random > /tmp/random-data
隨機(jī)數(shù)文件生成后,可以開(kāi)始分析和產(chǎn)生有著充足隨機(jī)性的可信數(shù)據(jù),該數(shù)據(jù)可用來(lái)生成安全密鑰,執(zhí)行證書(shū)簽名等任務(wù):
$ jot -r -p 8 1 256 | shasum > /tmp/random-data
/dev/urandom主要是利用特殊的偽隨機(jī)數(shù)生成器來(lái)生成的隨機(jī)數(shù),它的生成只需要很少的系統(tǒng)資源,而無(wú)需耗費(fèi)太多計(jì)算能力,也會(huì)節(jié)省系統(tǒng)開(kāi)銷,同時(shí)可以得到足夠的隨機(jī)數(shù),例如隨機(jī)選擇生成一個(gè)8位長(zhǎng)密碼:
$ cat /dev/urandom | tr -dc 'a-zA-Za-z' | head -c 8
此外,/dev/urandom還可以通過(guò)生成較長(zhǎng)的內(nèi)容用來(lái)創(chuàng)建隨機(jī)種子:
$ dd if=/dev/urandom of=/tmp/random-seed count=1
總之,Linux自帶的/dev/random和/dev/urandom函數(shù)可以迅速有效地生成隨機(jī)數(shù)。它們可以用來(lái)生成安全的加密碼、日期序列號(hào)、句子組合和密鑰、隨機(jī)種子等,有著廣泛的應(yīng)用。
成都創(chuàng)新互聯(lián)建站主營(yíng):成都網(wǎng)站建設(shè)、網(wǎng)站維護(hù)、網(wǎng)站改版的網(wǎng)站建設(shè)公司,提供成都網(wǎng)站制作、成都網(wǎng)站建設(shè)、成都網(wǎng)站推廣、成都網(wǎng)站優(yōu)化seo、響應(yīng)式移動(dòng)網(wǎng)站開(kāi)發(fā)制作等網(wǎng)站服務(wù)。
網(wǎng)頁(yè)標(biāo)題:Linux高效生成隨機(jī)數(shù)的函數(shù)(linux隨機(jī)數(shù)函數(shù))
轉(zhuǎn)載來(lái)源:http://m.fisionsoft.com.cn/article/dhjjcig.html


咨詢
建站咨詢
