linux下的真隨機數發生器 產生真隨機數

2021-05-23 21:43:28 字數 848 閱讀 4549

在翻閱linux核心方面的書時發現了乙個獲取真隨機數的方法。

linux核心將機器的物理硬體產生的雜訊等(例如發生的鍵盤敲擊,中斷次數,頻率,溫度等等)放入系統的熵池/dev/random 和/dev/urandom 中放的就是熵池中的部分隨機資料,/dev/random 裡只放入熵池中達到一定熵值的情況,例如達到比較的高的熵值的情況,那個時候資料最混亂,所以讀取/dev/random 中的隨機資料時會阻塞(熵池中隨機性也就是整體熵值達到一定程度才會在這裡面有隨機資料),但他的隨機性能比/dev/urandom 更好點,/dev/urandom 已經可以滿足對加密要求非常高需要隨機數的場景了。

[root@test59 ~]# vi random.c

#include

int main( int argc, char** args )

return 1;

}[root@test59 ~]# gcc random.c       

[root@test59 ~]# ./a.out

419941251665

19270289895

17908196899

19952896273

19796292007

20353450353

21115463529

20863995845

18673226572

18264664191

20194203122

17676988606

18187335585

17527617129

18539147318

17684736786

19253561163

17469991849

boost 隨機數發生器

在很多應用中都需要使用隨機數。本庫力求提供乙個高效的,通用的隨機數庫。boost庫有多種隨機數生成方式。先熟悉一下各種隨機數生成器的概念。數字生成器 number generator 它是乙個函式物件,沒有引數。類似於常見的rand 均勻隨機數生成器 uniform random number ge...

opencv隨機數發生器RNG

用opencv做演算法的朋友們肯定為隨機數煩惱過,新版本一直支援隨機數產生器啦,而且還繼續支援之前版本的c格式的函式,不過與時俱進,我這裡介紹c 的rng類。它可以壓縮乙個64位的i整數並可以得到scalar和array的隨機數。目前的版本支援均勻分布隨機數和gaussian分布隨機數。隨機數的產生...

產生隨意隨機數發生器

怎樣利用給定的隨機數發生器產生其它隨意你想得到的隨機數發生器。假定給定的隨機數發生器是變數產生離散變數x 服從某一分布 比如均勻分布。高斯分布等等 隨意你想得到的隨機數發生器滿足分布 y,如果x和 y其概率密度分布函式分布為 g x h y 假定用x 隨機數發生器產生 y隨機數發生器,以下分為2步求...