python - 如何使用Python `secret`模块生成随机整数?

标签 python security random python-3.6

在 Python 3.6 中,new module, secrets , 已添加。

使用此模块生成 [n, m) 范围内的随机整数的最有效方法是什么?

我试过 choice(range(n, m)),但我怀疑这是最好的方法。

最佳答案

secrets.choice(range(n, m)) 应该没问题,因为 range 在 Python 3 上是惰性的。

n + secrets.randbelow(m-n) 是另一种选择。我不会使用它,因为它不太明显正确。

由于 secrets 提供了对 SystemRandom 类的访问,与 random.Random 具有相同的接口(interface),您也可以保留自己的 SystemRandom 实例:

my_secure_rng = secrets.SystemRandom()

my_secure_rng.randrange(n, m)

关于python - 如何使用Python `secret`模块生成随机整数?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41001593/

相关文章:

javascript - XSS - 只能使用 JavaScript 才能实现吗?

java - 生成给定大小的字符串

security - 编码时我需要考虑哪些安全问题?

python - 有没有办法检查实时流量 scapy 中的数据包?

python - 如何使 python 脚本在 py2exe 中可执行?

python - 在Python中的Xpath中选择标签之间的文本

sql - 你会努力让你的 SQL 查询安全吗?

java - 为什么返回 null 而不是值?

matlab - 求具有范围的高斯随机变量的概率

python - 使用python将json文件上传到 Elasticsearch