我知道读取可能/dev/random
会阻塞,而读取则/dev/urandom
保证不会阻塞。
这封信是u
从哪里来的呢?它意味着什么?
用户空间?解封?微?
更新:
/dev/random
根据问题的最初措辞,关于vs的有用性存在一些争论/dev/urandom
。链接关于 /dev/urandom 的神话下面已经发了三遍了,总结在这个答案对这个问题何时使用 /dev/random 与 /dev/urandom。
答案1
无限。
在Linux中,比较名为random_read
和random_read_unlimited
表明字母u
in的词源urandom
是unlimited
。
这得到了证实114号线:
/dev/urandom 设备没有此限制 [...]
更新:
Linux 中哪一个先出现,/dev/random
或者/dev/urandom
哪个先出现,@Stéphane Chazelas 给出了发布原始补丁和@StephenKitt 表明他们都是同时介绍的。
答案2
这取决于您所谈论的“Unix”系统。
在 FreeBSD 上,/dev/urandom 和 /dev/random 是同一设备。字母 u 现在是历史遗产,其存在是为了向后兼容。在启动时,它们会阻塞,直到收集到足够的熵,然后不再阻塞。看关于乌兰多姆的神话了解详情。
在现代 Linux 世界中(从内核 4.8 开始),两个设备都从同一个 CSPRNG 中提取数据,因此唯一的区别是有些人推测存在攻击。这种攻击就像 FTL [超光速] 旅行。推测很容易,实际设计却很难。
TLDR 只是使用 /dev/urandom。
答案3
制服。随机数均匀分布在 0 和 1 之间。平坦分布...与泊松分布或正态/高斯分布等峰值分布相反。