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

时间:2019-05-07 18:03:26

标签: 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()

2 个答案:

答案 0 :(得分:3)

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

答案 1 :(得分:0)

随机documentation上有一节。

  

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

我在一个similar问题中发现了这一点,并对该主题进行了更多讨论。