Linux中的随机数文件 /dev/random /dev/urandom
来源:互联网 发布:软件资质证书有哪些 编辑:程序博客网 时间:2024/06/11 14:57
转自:http://www.linuxidc.com/Linux/2012-05/60476.htmLinux中的随机数可以从两个特殊的文件中产生,一个是/dev/urandom.另外一个是/dev/random。他们产生随机数的原理是利用当前系统的熵池来计算出固定一定数量的随机比特,然后将这些比特作为字节流返回。熵池就是当前系统的环境噪音,熵指的是一个系统的混乱程度,系统噪音可以通过很多参数来评估,如内存的使用,文件的使用量,不同类型的进程数量等等。如果当前环境噪音变化的不是很剧烈或者当前环境噪音很小,比如刚开机的时候,而当前需要大量的随机比特,这时产生的随机数的随机效果就不是很好了。这就是为什么会有/dev/urandom和/dev/random这两种不同的文件,后者在不能产生新的随机数时会阻塞程序,而前者不会(ublock),当然产生的随机数效果就不太好了,这对加密解密这样的应用来说就不是一种很好的选择。/dev/random会阻塞当前的程序,直到根据熵池产生新的随机字节之后才返回,所以使用/dev/random比使用/dev/urandom产生大量随机数的速度要慢。下面是一个简单的测试:[lichao@sg01 dd]$ dd if=/dev/random of=random.dat bs=1024b count=1 0+1 records in 0+1 records out 128 bytes (128 B) copied, 0.000169 seconds, 757 kB/s [lichao@sg01 dd]$ dd if=/dev/urandom of=random.dat bs=1024b count=1 1+0 records in 1+0 records out 524288 bytes (524 kB) copied, 0.091297 seconds, 5.7 MB/s 可以看到使用/dev/random产生随机数的速度很慢,而且产生的量很有限,当然,/dev/urandom的随机效果则好很多。
0 0
- Linux中的随机数文件 /dev/random /dev/urandom
- Linux中的随机数文件 /dev/random /dev/urandom
- Linux中的随机数文件 /dev/random /dev/urandom
- Linux: /dev/random , /dev/urandom
- linux 随机数的产生/dev/random 和/dev/urandom
- linux中/dev/null,/dev/zero,/dev/random,/dev/urandom
- /dev/random vs /dev/urandom
- /dev/random和/dev/urandom
- /dev/random和/dev/urandom
- /dev/random和/dev/urandom
- /dev/random 和/dev/urandom
- /dev/random与/dev/urandom
- /dev/random和/dev/urandom
- 利用linux的/dev/urandom文件产生较好的随机数
- 利用linux的/dev/urandom文件产生较好的随机数
- linux /dev/urandom和/dev/random的区别
- php获取/dev/urandom随机数
- Qt and C and C++ 使用 /dev/random or /dev/urandom产生随机数
- 助我学习成长
- Linker command failed with exit code 1(use -v to see invocation)
- SQLite 使用
- poj1182
- Js下拉框选择
- Linux中的随机数文件 /dev/random /dev/urandom
- 抽象类(abstract)及接口(interface)试例
- JAXB 实现bean与xml之间的转换
- hibernate_sessionn核心方法
- 运行到手机的app版本号与代码中的版本不一致
- 兼容viewpager中嵌套的viewpager自定义控件
- Java百分比转换问题
- 利用ViewPager和CiecleIndicator实现App引导滑动页
- 一题多解(三)—— Python 字符串的拼接