Linux下random和urandom的区别 - ZhangTory's NoteBlog - 张耀誉的笔记博客

Linux下random和urandom的区别

在linux下生成随机数可以使用random和urandom。

urandom

不依赖系统中断,不会造成获取随机数的线程等待,安全性较弱。

random

依赖系统中断,所以在系统中断不足时会造成线程阻塞,安全性高。
因为依赖于系统中断,所以在使用random时动动鼠标、键盘或其他设备,都会影响系统中断,中断会影响进入熵池中的数据,生成的数据随机性更高。

熵池

熵池的数据来源于各个设备产生的系统中断生成的数据,即从noice source中获取数据。
查看系统熵池中拥有的熵数:cat /proc/sys/kernel/random/entropy_avail
查看熵池大小:cat /proc/sys/kernel/random/poolsize
查看从熵池中读取熵的阀值,当 entropy_avail 中的值少于这个阀值,这读取 /dev/random 会被阻塞:cat /proc/sys/kernel/random/read_wakeup_threshold
获取一个uuid:cat /proc/sys/kernel/random/uuid

添加新评论

电子邮件地址不会被公开,评论内容可能需要管理员审核后显示。