【问题标题】:What platforms offer SystemRandom?哪些平台提供 SystemRandom?
【发布时间】:2011-09-07 08:03:23
【问题描述】:

Python 的random.SystemRandom 提供加密质量的伪随机数。它支持哪些平台?最重要的是,是否有任何平台不支持它,如果有,哪些平台?谁能提供有关它的便携性的任何信息?

【问题讨论】:

    标签: python random cryptography portability prng


    【解决方案1】:

    来自http://docs.python.org/library/random.html

    random 模块还提供了SystemRandom 类,它使用系统函数os.urandom() 从操作系统提供的源中生成随机数。

    来自http://docs.python.org/library/os.html#os.urandom

    此函数从特定于操作系统的随机源返回随机字节。返回的数据对于加密应用程序来说应该是不可预测的,尽管它的确切质量取决于操作系统的实现。在类 UNIX 系统上,这将查询 /dev/urandom,而在 Windows 上,它将使用 CryptGenRandom。如果没有找到随机源,则会引发NotImplementedError

    【讨论】:

    • 在 VMS 上,它使用 OpenSSL 的 RAND_pseudo_bytes,您可以通过阅读 the source 看到。
    • @tylerl,是的,我已经阅读了文档,并且我已经知道它在 Windows 和具有 /dev/urandom 的 Unix 平台上受支持。但同样,我最感兴趣的是了解它支持哪些平台,如原始问题中所述。
    • 我能感觉到你在使用 VMS
    • @GregS:别告诉我它使用 Python 的 os.urandom !?!?
    • 据我了解,RAND_psuedo_bytes 类似于 linux 上的 /dev/urandom,因为它使用获取的熵池来实现真正的随机性,但重新使用熵来避免阻塞。
    猜你喜欢
    • 1970-01-01
    • 2016-08-31
    • 2023-03-22
    • 2016-05-27
    • 2018-12-25
    • 2013-11-27
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多