Создание генератора паролей на Python

Генератор паролей Python

Из этой статьи вы узнаете, как создать генератор паролей на Python и генерировать надежные пароли с помощью модулей secrets и random.

Еще по теме: Шифрование с помощью Cryptography Python

Создание генератора паролей на Python

Не нужно устанавливать ничего дополнительно, так как все библиотеки, которые нам понадобятся, уже встроены в Python.

Мы используем модуль argparse для анализа аргументов командной строки, модуль string для получения типов символов, таких как заглавные буквы, строчные буквы, цифры и специальные символы, а также модули random и secrets для генерации случайных данных.

Давайте начнем:

Парсинг аргументов

Давайте начнем с инициализации аргументного парсера:

Затем добавляем аргументы в парсер. Первые четыре аргумента определяют количество символов каждого типа: цифры, строчные буквы, заглавные буквы и специальные символы. Также устанавливаем тип этих аргументов как целое число:

Если пользователь хочет передать общее количество символов в пароле, и не хочет указывать точное количество каждого типа символов, тогда аргумент -t или --total-length обрабатывает это:

Следующие два аргумента — это файл вывода, в котором мы будем сохранять пароли, и количество паролей для генерации. Количество будет целым числом, а файл вывода — строкой (по умолчанию):

Последнее, но не менее важное — анализируем командную строку на наличие этих аргументов с помощью метода parse_args() класса ArgumentParser. Если мы не вызовем этот метод, парсер не будет ничего проверять и не будет вызывать исключения:

Генерация пароля

Далее переходим к основной части — цикл создания паролей. Здесь генерируем количество паролей, указанное пользователем.

Сначала нужно определить список паролей, который будет содержать все сгенерированные пароли:

В цикле for проверяем, передан ли аргумент total_length. Если да, то непосредственно создаем случайный пароль с указанной длиной:

Используем модуль secrets вместо random для генерации криптографически надежных случайных паролей.

В противном случае создаем список пароля, который будет сначала содержать все возможные буквы, а затем строку пароля:

Затем используем функцию random.shuffle() для перемешивания списка:

После этого объединяем получившиеся символы с пустой строкой «», чтобы получить строковую версию пароля:

И, наконец, добавляем этот пароль в список passwords:

Сохранение паролей

После завершения цикла создания паролей проверяем, указан ли файл для сохранения. Если это так, просто открываем файл (который будет создан, если он не существует) и сохрняем список паролей:

Во всех случаях выводим пароли:

Запуск генератора паролей Python

Теперь давайте воспользуемся скриптом для создания разных комбинаций паролей. Сначала давайте выведем справку:

Создайте любое количество паролей с помощью этого инструмента.

Можем начать с параметра --total-length или -t:

Это создаст пароль длиной 12 символов, содержащий все возможные символы.

Хорошо, давайте сгенерируем 4 разных паролей такого вида:

Давайте создадим пароль, включающий пять строчных букв, две заглавные, три цифры и один специальный символ, всего 11 символов:

Сгенерируем пять разных паролей на основе этого правила:

Мы также можем создать случайные пин-коды из 6 цифр:

Добавим к этому четыре заглавные буквы и сохраним их в файл keys.txt:

В текущем рабочем каталоге появится новый файл keys.txt, содержащий эти пароли.

Вы можете генерировать столько паролей, сколько вам понадобится, например, 5000:

Заключение

Вы создали генератор паролей на Python. Если у вас есть большие списки паролей, то, возможно, вы не захотите видеть вывод результатов в консоли. В таком случае, вы можете удалить последнюю строку кода, которая отображает сгенерированные пароли в консоли.

ПОЛЕЗНЫЕ ССЫЛКИ:

Ban32
Добавить комментарий

  1. Nikolas

    Для чайников. В итоговом варианте как это будет выглядеть от и до?

    Ответить