有没有办法让更安全的随机化很难重现?
我尝试让用户输入种子以创建更安全的密码,因此更难重复相同的种子,但我想知道是否有更好/自动的方法可以做到这一点?
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 如果您需要加密安全的伪随机数生成器。
我在一个类似的问题中发现了这一点,并就该主题进行了更多讨论。