/dev/random vs /dev/urandom

If you want random data in a Linux/Unix type OS, the standard way to do so is to use /dev/random or /dev/urandom. These devices are special files. They can be read like normal files and the read data is generated via multiple sources of entropy in the system which provide the randomness.

/dev/random will block after the entropy pool is exhausted. It will remain blocked until additional data has been collected from the sources of entropy that are available. This can slow down random data generation.

/dev/urandom will not block. Instead it will reuse the internal pool to produce more pseudo-random bits.

/dev/urandom is best used when:

  • You just want a large file with random data for some kind of testing.
  • You are using the dd command to wipe data off a disk by replacing it with random data.
  • Almost everywhere else where you don’t have a really good reason to use /dev/random instead.

/dev/random is likely to be the better choice when:

  • Randomness is critical to the security of cryptography in your application – one-time pads, key generation.
时间: 2024-10-08 12:12:53

/dev/random vs /dev/urandom的相关文章

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

1.  基本介绍 /dev/random和/dev/urandom是Linux系统中提供的随机伪设备,这两个设备的任务,是提供永不为空的随机字节数据流.很多解密程序与安全应用程序(如SSH Keys,SSL Keys等)需要它们提供的随机数据流. 这两个设备的差异在于:/dev/random的random pool依赖于系统中断,因此在系统的中断数不足时,/dev/random设备会一直封锁,尝试读取的进程就会进入等待状态,直到系统的中断数充分够用, /dev/random设备可以保证数据的随机

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

1.  基本介绍 /dev/random和/dev/urandom是Linux系统中提供的随机伪设备,这两个设备的任务,是提供永不为空的随机字节数据流.很多解密程序与安全应用程序(如SSH Keys,SSL Keys等)需要它们提供的随机数据流. 这两个设备的差异在于:/dev/random的random pool依赖于系统中断,因此在系统的中断数不足时,/dev/random设备会一直封锁,尝试读取的进程就会进入等待状态,直到系统的中断数充分够用, /dev/random设备可以保证数据的随机

hostapd、/dev/random、/dev/urandom

在使用hostapd做软ap时,出现了random熵不够的问题,导致节点连接不上这个ap. 下面先解释一下/dev/random和/dev/urandom 先让我们从一个工程中遇到的实际问题开始,先上log: E/hostapd (  100): random: Cannot readfrom /dev/random: Try again I/hostapd (  100): random: Only 0/20bytes of strong random data available from

死在/dev/random上

FOTA差分升级的时候有个retouch_binaries操作,我这里到了这一句就卡住了,等待的圈圈能转几天也不见完.后来发觉乱捅几下居然完了.找到一个解决此问题的patch,发现是将/dev/random修改成了/dev/urandom diff --git a/updater/install.c b/updater/install.c index a1acdb9..2f2631a 100644 --- a/updater/install.c +++ b/updater/install.c @

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

Linux中的随机数可以从两个特殊的文件中产生,一个是/dev/urandom.另外一个是/dev/random.他们产生随机数的原理是利用当前系统的熵池来计算出固定一定数量的随机比特,然后将这些比特作为字节流返回.熵池就是当前系统的环境噪音,熵指的是一个系统的混乱程度,系统噪音可以通过很多参数来评估,如内存的使用,文件的使用量,不同类型的进程数量等等.如果当前环境噪音变化的不是很剧烈或者当前环境噪音很小,比如刚开机的时候,而当前需要大量的随机比特,这时产生的随机数的随机效果就不是很好了. 这就

docker+tomcat 启动时非常慢原因之JRE /dev/random阻塞

docker+tomcat 启动时非常慢,一般正常启动几十秒的,发现docker+tomcat启动竟需要几分钟,不可思议 根本原因是 SecureRandom 这个 jre 的工具类的问题.那为什么 SecureRandom generateSeed 这么慢,甚至挂在 Linux 操作系统呢? Tomcat 7/8 都使用 org.apache.catalina.util.SessionIdGeneratorBase.createSecureRandom 类产生安全随机类 SecureRando

辛星解读/dev/null和/dev/zero

在类Unix系统中,/dev/null称为空设备,它是一个特殊的设备文件,它丢弃一切写入其中的数据,不过他会报告写入成功,读取它的话会立即得到一个EOF.在程序员行话中,尤其是Unix行话中,/dev/null被称为位桶,也就是bit   bucket,也可以称之为黑洞,即black  hole.这个空设备通常被用于丢弃不需要的输出流,或者作为用于输入流的空文件.这些操作通常由重定向完成. 当我们使用cat  $filename 的时候,如果对应的文件不存在,那么系统会产生错误信息,我们就可以禁

Linux系统中有关/dev/null和/dev/zero文件说明及实践

Linux系统中有关/dev/null和/dev/zero文件说明 提示:这个题目完全可以作为一个面试题考考运维的应聘者: 面试题:请解释Linux中/dev/null和/dev/zero两个文件的作用和区别. 在类Unix操作系统中,设备节点并不一定要对应物理设备.没有这种对应关系的设备被称之为伪设备.操作系统运用了它们实现多种多样的功能,/dev/null和/dev/zero就是这样的设备,类似的还有/dev/urandom./dev/tty等. 先检查下/dev/null和/dev/zer

2>&1 >/dev/null & 与/dev/null 2>&1含义

/dev/null 代表空设备文件 > 代表重定向到哪里,例如:echo "123" > /home/123.txt 1 表示stdout标准输出,系统默认值是1,所以">/dev/null"等同于"1>/dev/null" 2 表示stderr标准错误 & 表示等同于的意思,2>&1,表示2的输出重定向等同于1 1>/dev/null 首先表示标准输出重定向到空设备文件,也就是不输出任何信息到