【问题标题】:What is /dev/arandom?/dev/arandom 是什么?
【发布时间】:2012-10-04 21:31:42
【问题描述】:

这个manual page 说:

注意:从 PHP 5.4.0 开始 session.entropy_file 默认为 /dev/urandom/dev/arandom(如果可用)。在 PHP 5.3.0 这个 指令默认为空。

那么,/dev/arandom 是什么?它与 /dev/[u]random 有何不同?

【问题讨论】:

  • @ta.speot.is:我可以从路径中推断出来。 a 代表什么?
  • ARC4,根据 Google 上的第一个结果。 mirbsd.org/htman/i386/man4/arandom.htm
  • @ta.speot.is:这是我的 Google 中的第 6 个结果...好吧,将其发布为答案,我会接受。 =)
  • 我的答案已关闭,但我仍然认为问题不是争论哪个 a/q 网站的答案最开放/关闭,而是如何让 OP 找到问题的答案。链接之外的答案仍然回答了问题What is /dev/arandom?
  • @budwiser:在问这个问题之前,我浏览了那个网站(我的谷歌上的第一个结果)。答案没有明确说明,有些贡献令人困惑甚至误导。

标签: php linux session random


【解决方案1】:

This page 合理地解释了设备是什么:

根据需要,熵池数据重新播种 ARC4 生成器,然后生成高质量的伪随机输出数据。

有关底层技术的更多信息,请访问from Wikipedia

【讨论】:

    【解决方案2】:

    来自here。似乎arandom 将保证在返回请求的数据量之前存在足够的熵。它似乎也仅限于 OpenBSD 实现。无论是否有足够的熵,urandom 都会返回请求的数据量——如果没有足够的熵,显然会引入漏洞。

    【讨论】:

    • 来自calomel.org/entropy_random_number_generators.html: "/dev/random 的熵非常好,但速度很差。/dev/urandom 的熵很差,但速度很好。在 OpenBSD 机器上的/dev/arandom 两者兼而有之。
    • @AlixAxel 优秀的蒸馏。这也是我从四处寻找的要点,尽管我从未发现它如此简洁。
    • @Alix Axel:“两者兼有”是指“熵差和速度差”吗?
    • @sirgeorge:不是“差”,“很好”。但这些话不是我的。
    • @ChrisThompson 这个答案实际上是不正确的。在*BSD 系统上实现的arandom 使用arc4random(当前基于ChaCha20 流密码)来生成随机字节流。就像urandom 一样,它将总是有足够的数据,无需等待。它比传统的urandom 具有更高的熵,并且从 OpenBSD 5.1 开始,arandom 取代了urandom。如果人们阅读您的答案并避免 arandom 担心它会阻塞,我会讨厌它。它永远不会阻塞! :)
    猜你喜欢
    • 2012-05-17
    • 2013-11-26
    • 1970-01-01
    • 2013-10-13
    • 2015-09-09
    • 2018-08-12
    • 2016-06-03
    相关资源
    最近更新 更多