Linux系统产生随机数 /dev/random和/dev/urandom

15人阅读 评论(0) 收藏 举报
分类:

/dev/random和/dev/urandom是Linux系统中提供的随机伪设备,这两个设备的任务,是提供永不为空的随机字节数据流。很多解密程序与安全应用程序(如SSH Keys,SSL Keys等)需要它们提供的随机数据流。

这两个设备的差异在于:/dev/random的random
pool依赖于系统中断,因此在系统的中断数不足时,/dev/random设备会一直封锁,尝试读取的进程就会进入等待状态,直到系统的中断数充分够用, /dev/random设备可以保证数据的随机性。/dev/urandom不依赖系统的中断,也就不会造成进程忙等待,但是数据的随机性也不高。

字符设备文件的打开方式和其它文件一样,都是使用open函数即可。

/dev/random和/dev/urandom的使用方法如下:

#include<stdio.h>
#include <sys/types.h>
#include <sys/stat.h>
#include <fcntl.h>
int main()
{
int fd=0;
char *buff=NULL;
unsigned long ulTest = 0;
fd=open("/dev/urandom",O_RDONLY);
read(fd,&ulSeed,sizeof(ulTest));
printf("%ul",ulTest);
close(fd);
}
编译之后执行即可。

感觉linux系统博大精深啊!

完!


查看评论

使用/dev/random生成随机数

很多库例程产生的“随机”数是准备用于仿真、游戏等等;它们在被用于密钥生成一类的安全函数时是不够随机的。其问题在于这些库例程使用的算法的未来值可以被攻击者轻易地推导出来(虽然看起来它们可能是随机的)。对...
  • lme525
  • lme525
  • 2014-07-10 16:13:17
  • 903

Linux中的随机数文件 /dev/random /dev/urandom

转自:http://www.linuxidc.com/Linux/2012-05/60476.htmLinux中的随机数可以从两个特殊的文件中产生,一个是/dev/urandom.另外一个是/dev/...
  • Adam040606
  • Adam040606
  • 2016-08-31 10:13:09
  • 423

在Linux中利用熵池 /dev/urandom 生成固定长度随机数

/dev/urandom 是一个内核熵池 在Linux内核中,熵池是环境噪声数据流的集合,被作为种子用于生成随机数。 以下命令Ubuntu或者Centos都已测试通过 cat /dev/uran...
  • RBPicsdn
  • RBPicsdn
  • 2018-01-09 21:52:03
  • 168

php 使用“/dev/urandom”获取随机数

描述  首先,说一下伪随机数,伪随机数并不是假随机数,这里的“伪”是有规律的意思,就是计算机产生的伪随机数既是随机的又是有规律的。怎样理解呢?产生的伪随机数有时遵守一定的规律,有时不遵守任何规律;伪随...
  • Jeanphorn
  • Jeanphorn
  • 2016-09-22 21:37:48
  • 4421

/dev/random和/dev/urandom的一点备忘

1.  基本介绍     /dev/random和/dev/urandom是Linux系统中提供的随机伪设备,这两个设备的任务,是提供永不为空的随机字节数据流。很多解密程序与安全应用程序(如SSH K...
  • ohmygirl
  • ohmygirl
  • 2014-10-22 22:36:39
  • 21101

利用linux的/dev/urandom文件产生较好的随机数

很多朋友经常用srand/rand产生随机数, 其实这种随机性并不好, 容易遭受攻击(很多时候, 也满足不了需求)。 在本文中, 我们来简要介绍一下利用linux的/dev/urandom文件产生较好...
  • stpeace
  • stpeace
  • 2015-05-18 22:24:06
  • 8091

SecureRandom生成随机数超慢 导致tomcat启动时间过长的解决办法

使用腾讯云的CentOS 7.2 CVM 服务器跑Tomcat时发现,Tomcat启动的特别慢,通过查看日志,发现时间主要花在实例化SecureRandom对象上了。由该日志可以看出,实例化该对象使用...
  • upshi
  • upshi
  • 2017-02-07 10:57:32
  • 5101

java中的SecureRandom在linux中的实现

在安全系统中,通常我们会使用securerandom去更安全的生成随机数,而默认的SecureRandom里使用的算法是SHA1PRNG。   Linux中的随机数发生器 在Linux操作系统中,有一...
  • raintungli
  • raintungli
  • 2015-01-19 19:52:28
  • 15489

linux /dev/urandom和/dev/random的区别

Linux 产生随机数的两种方式 cat  /dev/urandom | od -x | sed 's/\s*//g' |cut -c 8-16 |less cat  /dev/random...
  • z1988316
  • z1988316
  • 2012-10-19 10:20:27
  • 7080

php获取/dev/urandom随机数

1.有一种算是比较好的随机数算法,但是需要支持Mcrypt模块:// equiv to rand, mt_rand // returns int in *closed* interval [$min,...
  • u014520745
  • u014520745
  • 2017-01-12 15:14:30
  • 1769
    个人资料
    持之以恒
    等级:
    访问量: 11万+
    积分: 2311
    排名: 2万+
    最新评论