Як створити генератор випадкових паролів у Python

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

У цій статті ми створимо генератор паролів, який допоможе нам швидко генерувати випадкові та надійні паролі.

Навіщо нам генератор паролів?

Тому що ми не можемо відразу придумати різні шаблони паролів.

Але з комп’ютерами це не так. Комп’ютери можуть генерувати випадкові та надійні паролі на основі наших налаштувань за лічені секунди. Існує багато доступних генераторів паролів.

Чи можемо ми створити свій власний із налаштуваннями, які нам подобаються?

Так, ми точно можемо його створити. І тут ми покажемо вам, як це зробити.

Давайте створимо генератор паролів.

Генератор паролів 💻

Найкраще у створенні власного генератора паролів полягає в тому, що ми можемо налаштувати його на свій розсуд.

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

Далі ми вдосконалимо його, запитавши номер кожного типу символу, як-от кількість цифр, алфавітів і спеціальних символів.

Отже, без зайвих слів, давайте подивимося, як створити генератор паролів за допомогою Python.

Кроки

  • Зберігайте всі символи у вигляді списку. Ми можемо використовувати рядковий модуль Python або ввести їх усі.
  • Попросіть користувача ввести довжину пароля.
  • Перемішайте символи за допомогою методу random.shuffle.
  • Ініціалізуйте порожній список для збереження пароля.
  • Напишіть цикл, який повторює довжину кілька разів.
    • Виберіть випадкового персонажа з усіх символів за допомогою методу random.choice.
    • Додайте випадковий символ до пароля.
  • Перемішайте отриманий список паролів, щоб зробити його більш випадковим.
  • Перетворіть список паролів на рядок за допомогою методу приєднання.
  • Роздрукуйте пароль.
  Як отримати доступ до старого облікового запису Myspace без електронної пошти та пароля

Виконайте описані вище дії та спробуйте написати код. Не хвилюйтеся, навіть якщо ви не можете написати код. Перегляньте код нижче.

Код

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)

Зверніть увагу на пароль у вихідних даних вище. Є якась цифра? Ні. Тому що немає гарантії, що програма буде містити цифри.

  Як вимкнути Samsung Galaxy Note 10 або 10 Plus

Далі ми намагаємося гарантувати, що програма включатиме цифри та спеціальні символи, просячи користувача ввести потрібну кількість цифр, алфавітів і спеціальних символів.

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

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

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()

Отже, яка різниця між попереднім кодом і цим кодом?

  • Ми написали окремі цикли для кожного типу символів, щоб додати їх до пароля.
  • Є дві умовні перевірки для підтвердження загальної кількості символів із довжиною пароля.
  Що робити, якщо обліковий запис Roblox видалено?

Ми додали додатковий код. Але шаблон схожий на попередній код. Отже, вам не складе труднощів зрозуміти це.

Тепер настав час виконати та перевірити результат. Перегляньте наступний тестовий запуск.

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 випадкових символи, щоб зробити довжину пароля рівною введеному користувачем.

Ура! у нас є повний надійний генератор паролів. 😎

Висновок

Ми побачили, як створити генератор паролів з нуля. Чи можемо ми додати до нього більше функцій? Так, ми можемо додати скільки завгодно. Але переконайтеся, що отриманий пароль достатньо надійний.

Згенеруйте паролі з коду та використовуйте їх для свого наступного онлайн-облікового запису.

Поки ви це робите, використовуйте Генератор випадкових паролів techukraine.net для створення надійних паролів.

Дізнайтеся, як писати код, що відповідає або не відповідає коду, і як створити гру в хрестики-нулики на Python.

Щасливого кодування! 👩‍💻