如何使用Python程序手动生成熵?

问题描述 投票:0回答:2

最常被引用的随机性来源是 Windows 系统中的 CrypAPI。我可以在不使用 python 中的 API 的情况下从不同来源生成自己的熵吗?有这样的图书馆吗?我想修改生成过程并了解一些有关 RNG 的知识。

python random entropy
2个回答
0
投票

您需要

secrets
模块。

secrets 模块用于生成适用于管理密码、帐户身份验证、安全令牌和相关机密等数据的加密强随机数。

特别是,应优先使用 Secrets,而不是随机模块中默认的伪随机数生成器,该生成器是为建模和模拟而设计的,而不是安全或密码学。

例如,要收集 128 位熵,您可以执行以下操作:

import secrets

entropy = secrets.randbits(128)

-2
投票

当然,您可以从提供它的网站获得随机噪音,例如

https://www.random.org/strings/

“随机性来自大气噪声,在许多用途上,它比计算机程序中通常使用的伪随机数算法更好。”

沿着这条线,使用 BeautifulSoup 来废弃页面

import urllib2
from bs4 import BeautifulSoup

# specify the url
rng_page = ‘https://www.random.org/strings/'

# query the website and return the html to the variable ‘page’
page = urllib2.urlopen(rng_page)

# parse the html using beautiful soup and store in variable `soup`
soup = BeautifulSoup(page, ‘html.parser’)

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