【问题标题】:What does secrets module do to make perfect random sequences in Python在 Python 中,secrets 模块如何制作完美的随机序列
【发布时间】:2020-12-15 17:55:03
【问题描述】:

现在我对数学有了一定的了解,而且我知道可以使用特定的数学算法创建伪随机序列。我也知道在 Python 中,有一个 secrets 模块显然可以产生随机数。我尝试对其进行一些调整,但我仍然不明白它应该如何工作。让我们说这段代码:

import secrets

secret_num = secrets.choice([1, 2, 3])
print(secret_num)

它应该输出一个完全随机的数字。但是使用计算机怎么可能呢?

【问题讨论】:

  • 这怎么可能是什么意思?
  • 我的意思是计算机是如何运行的。
  • 谢谢,这对我也很有帮助。

标签: python-3.x random


【解决方案1】:

documentation for the secrets module 表示它产生“适用于管理密码、帐户身份验证、安全令牌和相关机密等数据的加密强随机数”。文档没有具体说明它是如何做到的。

但是,“加密强随机数”的一个常见要求是外部攻击者应该很难猜到它们。为此,secrets 模块可能依赖于操作系统提供的随机数生成器(例如secrets.SystemRandom),而那个 生成器的工作方式又取决于操作系统。但总的来说,为信息安全而设计的随机数生成器最终依赖于从非确定性来源收集难以猜测的位,如以下问题中进一步解释的那样:

【讨论】:

    猜你喜欢
    • 2023-03-14
    • 2020-01-15
    • 2021-12-04
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-10-13
    • 1970-01-01
    相关资源
    最近更新 更多