Генератор паролей генерирует те же пароли - PullRequest
0 голосов
/ 21 марта 2020

Я пытаюсь создать генератор паролей в 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()

Все работает нормально, но единственная проблема - иногда он генерирует те же пароли в текстовом файле. Как я могу избежать этого?

1 Ответ

0 голосов
/ 21 марта 2020

Один из способов избежать проблемы дублирования - поместить пароли в set в вашем l oop и продолжать цикл до тех пор, пока длина набора не станет числом паролей, которое вы хотите сгенерировать. Затем вы можете записать содержимое набора в файл. Здесь показано, как сгенерировать набор паролей:

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'}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...