利用linux的/dev/urandom檔案產生較好的隨機數
很多朋友經常用srand/rand產生隨機數, 其實這種隨機性並不好, 容易遭受攻擊(很多時候, 也滿足不了需求)。 在本文中, 我們來簡要介紹一下利用linux的/dev/urandom檔案產生較好的隨機數, 直接上程式碼吧:
#include <stdio.h>
#include <fcntl.h>
int main()
{
int randNum = 0;
int fd = open("/dev/urandom", O_RDONLY);
if(-1 == fd)
{
printf("error\n");
return 1;
}
read(fd, (char *)&randNum, sizeof(int));
close(fd); // 千千萬萬不要漏, 我曾漏過, 結果好悲劇
printf("randNum is %d\n", randNum);
return 0;
}
結果:
[taoge@localhost learn_c]$ ./a.out
randNum is -1061686095
[taoge@localhost learn_c]$ ./a.out
randNum is 1768060870
[taoge@localhost learn_c]$ ./a.out
randNum is -1313095365
[taoge@localhost learn_c]$ ./a.out
randNum is -1651791231
[taoge@localhost learn_c]$ ./a.out
randNum is 932742445
[taoge@localhost learn_c]$ ./a.out
randNum is 1191576271
[taoge@localhost learn_c]$
randNum is -1061686095
[taoge@localhost learn_c]$ ./a.out
randNum is 1768060870
[taoge@localhost learn_c]$ ./a.out
randNum is -1313095365
[taoge@localhost learn_c]$ ./a.out
randNum is -1651791231
[taoge@localhost learn_c]$ ./a.out
randNum is 932742445
[taoge@localhost learn_c]$ ./a.out
randNum is 1191576271
[taoge@localhost learn_c]$
除了/dev/urandom還, 實際上還有一個/dev/random, 兩者是有一些小區別的, 有興趣的話, 大家可以在網上搜尋並瞭解一下, 我就不再重複囉嗦了。
相關文章
- linux生產32位隨機數Linux隨機
- 利用arc4random_uniform()產生隨機數randomORM隨機
- 計算機隨機數的產生 (轉)計算機隨機
- R產生隨機數隨機
- 高效產生不重複的隨機數隨機
- vc中產生隨機數隨機
- c++產生隨機數C++隨機
- 如何產生指定範圍的隨機數隨機
- C 語言產生隨機數的方法隨機
- C語言產生隨機數的方法C語言隨機
- 關於 /dev/urandom 的流言終結devrandom
- 高效產生一組不重複的隨機數隨機
- 【筆記】如何產生隨機數筆記隨機
- js隨機產生區間數JS隨機
- matlab產生隨機數或隨機矩陣Matlab隨機矩陣
- Random 專案總結 -11 產生隨機數字random隨機
- 利用MATLAB產生COE檔案Matlab
- matlab中的產生隨機數的rand函式Matlab隨機函式
- 產生0到100內的任意隨機數隨機
- ORACLE產生隨機數的多種方法分享 轉Oracle隨機
- 辛星淺析/dev/random和/dev/urandomdevrandom
- Matlab產生特定範圍的隨機數矩陣Matlab隨機矩陣
- js實現的產生隨機數程式碼例項JS隨機
- MATLAB中如何產生指定範圍的隨機數Matlab隨機
- 隨機產生0-1之間實數的方法隨機
- 如何在linux中用命令產生一個範圍內的隨機數?Linux隨機
- JavaScript產生隨機數例項程式碼JavaScript隨機
- 從oracle表中隨機取記錄,產生隨機數和隨機字串Oracle隨機字串
- Linux中patch檔案的產生與使用Linux
- Python產生20個隨機整數的方法詳解!Python隨機
- C語言中產生真隨機數的方法,帶封裝C語言隨機封裝
- 產生一個32位的16進位制隨機數隨機
- 集合框架-產生10個1-20之間的隨機數,要求隨機數不能重複框架隨機
- Matlab產生隨機數函式小結Matlab隨機函式
- Rust中如何產生隨機數或密碼?Rust隨機密碼
- 產生的檔案找不到
- 產生唯一隨機碼的方法分析隨機
- oracle要對一個欄位產生隨機數Oracle隨機