我可以用python生成真正的随机数吗?

问题描述 投票:5回答:3

我正在学习python的随机模块。我知道它会生成伪随机数。其核心思想是使用高频时钟作为种子,然后使用函数生成“看起来像随机数”。

据我所知,甚至不可能在现实世界中产生真实的随机数。

但我知道Unix随机生成器已经引入了一些其他因素,如鼠标移动轨迹参数,IO响应时间,为其随机数生成器函数引入不确定性。通过它我们可以获得比普通伪随机数更好的随机数。预测起来要困难得多。

那么,有没有办法在python中我们可以产生这样一个随机数,或者可能导入一个好的第三方库?

python random
3个回答
5
投票

documentation模块的random有这样说:

警告:不应将此模块的伪随机生成器用于安全目的。如果需要加密安全的伪随机数生成器,请使用os.urandom()SystemRandom


3
投票

真正的随机数可以从中生成

https://pypi.python.org/pypi/quantumrandom/

pip install quantumrandom

目前,您只能使用1024个块,但只需要一些简单的编程和一点点时间,您就可以将此限制扩展到大多数应用程序的足够大的样本。


1
投票

https://www.random.org/integers/ https://api.random.org/json-rpc/1/

这个网站通过大气白噪声产生随机数,这比用于开发的伪随机数更好。你也可以使用API​​来获取自动随机数(虽然它不会免费,因为它目前处于测试阶段。)

获得真随机数的另一种方法是通过量子随机数发生器http://photonics.anu.edu.au/qoptics/Research/qrng.php

为了重新识别某人之前所说的内容,您应该避免使用计算机制作的伪随机数来达到安全目的。

© www.soinside.com 2019 - 2024. All rights reserved.