Генератор случайных паролей

Олег Суворинов Вс 25 июля 2021 17:14 1 мин

Пример простого кода, основанного на модуле random, это библиотека для создания псевдо-случайных чисел, с довольно большим функционалом. В данном примере используется функция choice — которая возвращает случайный элемент из списка символов. В качестве источника символов, символы, которые можно ввести на клавиатуре. Полученные пароли можно сохранить в файле “passwords.txt”. Файл не заменяется при каждом использовании программы: новые пароли просто вставляются после тех, которые были сгенерированы до этого.

from random import choice


def mkpassword(length=16) -> str:
    pwd = []
    charsets = [
        'abcdefghijklmnopqrstuvwxyz',
        'ABCDEFGHIJKLMNOPQRSTUVWXYZ',
        '0123456789',
        '^!%&/()=?{[]}+~#-_.:,;<>|\\'
    ]
    charset = choice(charsets)
    while len(pwd) < length:
        pwd.append(choice(charset))
        charset = choice(list(set(charsets) - set([charset])))
    return "".join(pwd)


if __name__ == '__main__':
    for i in range(10):
        password = mkpassword(8)
        with open("passwords.txt", "a") as file:
            file.write(password + '\n')
            file.close()