Как создать генератор паролей с помощью Python?

Опубликовано: 2021-08-20

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

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

Зачем нам нужен генератор паролей?

Потому что мы не можем сразу придумать разные шаблоны паролей.

Но с компьютерами дело обстоит иначе. Компьютеры могут генерировать случайные и надежные пароли на основе наших настроек за секунды. Доступно множество генераторов паролей.

Можем ли мы создать свои собственные с настройками, которые нам нравятся?

Да, мы определенно можем его создать. И здесь мы покажем вам, как это сделать.

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

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

Лучшее в создании собственного генератора паролей - это то, что мы можем настроить его по своему усмотрению.

Сначала мы создадим генератор паролей, который запрашивает длину пароля и генерирует случайный пароль, содержащий цифры, буквы и специальные символы.

Затем мы улучшим его, задав количество символов каждого типа, например количество цифр, алфавитов и специальных символов.

Итак, без лишних слов, давайте посмотрим, как создать генератор паролей с помощью Python.

Шаги

  • Сохраните всех персонажей в виде списка. Мы можем использовать строковый модуль Python или ввести их все.
  • Попросите пользователя ввести длину пароля.
  • Перемешайте символы, используя метод random.shuffle .
  • Инициализируйте пустой список для хранения пароля.
  • Напишите цикл, который повторяет length раз.
    • Выберите случайный символ из всех символов, используя метод random.choice .
    • Добавьте случайный символ к паролю.
  • Перемешайте полученный список паролей, чтобы сделать его более случайным.
  • Преобразуйте список паролей в строку с помощью метода join .
  • Распечатайте пароль.

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

Код

 import string import random ## characters to generate password from characters = list(string.ascii_letters + string.digits + "[email protected]#$%^&*()") def generate_random_password(): ## length of password from the user length = int(input("Enter password length: ")) ## shuffling the characters random.shuffle(characters) ## picking random characters from the list password = [] for i in range(length): password.append(random.choice(characters)) ## shuffling the resultant password random.shuffle(password) ## converting the list to string ## printing the list print("".join(password)) ## invoking the function generate_random_password()

Приведенный выше код не требует пояснений. Мы только что выполнили описанные шаги для написания кода. Итак, вы не найдете проблем с пониманием кода, если прочитаете шаги.

Теперь запустите код и сгенерируйте пароль. Пример вывода будет следующим.

 Enter password length: 10 d&amIzK%d)

Обратите внимание на пароль в приведенном выше выводе. Есть какая-нибудь цифра? Нет. Потому что нет гарантии, что программа будет включать цифры.

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

Когда пользователь вводит количество символов для каждого типа, программа будет включать соответствующее количество типов символов в пароль.

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

 import string import random ## characters to generate password from alphabets = list(string.ascii_letters) digits = list(string.digits) special_characters = list("[email protected]#$%^&*()") characters = list(string.ascii_letters + string.digits + "[email protected]#$%^&*()") def generate_random_password(): ## length of password from the user length = int(input("Enter password length: ")) ## number of character types alphabets_count = int(input("Enter alphabets count in password: ")) digits_count = int(input("Enter digits count in password: ")) special_characters_count = int(input("Enter special characters count in password: ")) characters_count = alphabets_count + digits_count + special_characters_count ## check the total length with characters sum count ## print not valid if the sum is greater than length if characters_count > length: print("Characters total count is greater than the password length") return ## initializing the password password = [] ## picking random alphabets for i in range(alphabets_count): password.append(random.choice(alphabets)) ## picking random digits for i in range(digits_count): password.append(random.choice(digits)) ## picking random alphabets for i in range(special_characters_count): password.append(random.choice(special_characters)) ## if the total characters count is less than the password length ## add random characters to make it equal to the length if characters_count < length: random.shuffle(characters) for i in range(length - characters_count): password.append(random.choice(characters)) ## shuffling the resultant password random.shuffle(password) ## converting the list to string ## printing the list print("".join(password)) ## invoking the function generate_random_password()

Итак, в чем разница между предыдущим кодом и этим кодом?

  • Мы написали отдельные циклы для каждого типа символа, чтобы добавить их к паролю.
  • Есть две условные проверки для проверки общего количества символов с длиной пароля.

Мы добавили дополнительный код. Но шаблон похож на предыдущий код. Так что разобраться в этом не составит труда.

Теперь пора выполнить и проверить вывод. Посмотрите на следующий тестовый прогон.

 Enter password length: 10 Enter alphabets count in password: 3 Enter digits count in password: 2 Enter special characters count in password: 3 V2(&#XlQq1

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

Ура! у нас есть полноценный генератор надежных паролей.

Вывод

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

Сгенерируйте пароли из кода и используйте их для своей следующей онлайн-учетной записи.

Затем узнайте, как создать игру в крестики-нолики на Python.

Удачного кодирования!