Как создать генератор паролей с помощью 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.
Удачного кодирования!
