如何确保 python 密码生成器的安全随机化



有没有办法让更安全的随机化很难重现?

我尝试让用户输入种子以创建更安全的密码,因此更难重复相同的种子,但我想知道是否有更好/自动的方法可以做到这一点?

import random
import string
LENGTH = input("How long do you want your password?: ")
SEED = input("Seed? (The more random the better)")
GENLIST = list(string.ascii_letters + string.digits)
if SEED != "":
random.seed(SEED)
try:
PASSWORD = ""
for i in range(int(LENGTH)):
PASSWORD += GENLIST[(random.randint(0, 61))]
print()
print(PASSWORD)
except TypeError:
print("Integer not entered")
input()

使用os.urandom(),它从相应的设备读取。

随机的文档有一节关于这一点。

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

我在一个类似的问题中发现了这一点,并就该主题进行了更多讨论。

最新更新