密码生成器生成相同的密码

2024-09-13 19:54:38 发布

您现在位置:Python中文网/ 问答频道 /正文

我正试图用Python制作一个密码生成器,但我遇到了一些问题

我的代码如下:

import random
import time

f = open("password_list.txt", "a+")

start = time.time()
password = ""
chars= "123456789"
number = int(input("Number of passwords to generate? = "))
length = int(input("Password length? = "))

for p in range(number):
    password = ""
    for c in range(length):
        password += random.choice(chars)
    print(password)
    f.write(password + "\n") 

print('time: ' + str((time.time() - start)) + ' sec')

f.close()

一切正常,但唯一的问题是有时它会在文本文件中生成相同的密码。我怎样才能避免呢


Tags: inimport密码numberforinputtimerange
1条回答
网友
1楼 · 发布于 2024-09-13 19:54:38

避免重复问题的一种方法是将密码放入循环中的set中,并保持循环,直到密码集的长度达到您想要生成的密码数为止。然后可以将集合的内容写入文件。这显示了如何生成密码集:

import random

chars= "123456789"
number = 5
length = 8
passwords = set()

while len(passwords) < number:
    password = ""
    for c in range(length):
        password += random.choice(chars)
    passwords.add(password)

print(passwords)

样本输出:

{'67824479', '67159221', '78423732', '77922952', '83499619'}

相关问题 更多 >