Как да създадете генератор на произволни пароли в Python

Сигурността е една от най-важните части на живота ни. Значението на сигурността нараства с всеки изминал ден, тъй като повечето неща стават онлайн. Паролите излизат наяве, когато говорим за сигурност.

В тази статия ще създадем генератор на пароли, който ни помага бързо да генерираме произволни и силни пароли.

Защо се нуждаем от генератор на пароли?

Защото не можем веднага да измислим различни модели на пароли.

Но това не е същият случай с компютрите. Компютрите могат да генерират произволни и силни пароли въз основа на нашите персонализации за секунди. Има много налични генератори на пароли.

Можем ли да създадем наши собствени с персонализациите, които харесваме?

Да, определено можем да създадем такъв. И тук ще ви покажем как да направите това.

Нека създадем генератор на пароли.

Генератор на пароли 💻

Най-хубавото при създаването на наш собствен генератор на пароли е, че можем да го персонализираме както желаем.

Първо ще създадем генератор на пароли, който пита за дължината на паролата и генерира произволна парола, съдържаща цифри, азбуки и специални знаци.

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

И така, без повече шум, нека видим стъпките за създаване на генератор на пароли с помощта на Python.

  Как да регулирате силата на звука на вашия Mac

стъпки

  • Съхранявайте всички знаци като списък. Можем да използваме string модула на Python или да напишем всички.
  • Помолете потребителя да въведе дължината на паролата.
  • Разбъркайте знаците чрез метода random.shuffle.
  • Инициализирайте празен списък, за да съхраните паролата.
  • Напишете цикъл, който повтаря дължина пъти.
    • Изберете произволен знак от всички знаци, като използвате метода random.choice.
    • Добавете произволен знак към паролата.
  • Разбъркайте получения списък с пароли, за да го направите по-произволен.
  • Преобразувайте списъка с пароли в низ, като използвате метода за присъединяване.
  • Отпечатайте паролата.

Следвайте горните стъпки и опитайте да напишете код. Не се притеснявайте, дори ако не можете да напишете кода. Вижте кода по-долу.

Код

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)

Спазвайте паролата в горния изход. Има ли някаква цифра? Не. Защото няма гаранция, че програмата ще включва цифри.

  Как да премахнете банкова сметка от Cash App

След това се опитваме да гарантираме, че програмата ще включва цифри и специални знаци, като молим потребителя да въведе броя на цифрите, азбуките и специалните знаци, които иска.

Когато потребителят въведе броя знаци за всеки тип, програмата ще включи съответния брой типове знаци в паролата.

Нека да видим кода, който приема броя знаци за всеки тип и генерира паролата.

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

И така, каква е разликата между предишния код и този код?

  • Написали сме отделни цикли за всеки тип символ, за да ги добавим към паролата.
  • Има две условни проверки за валидиране на общия брой знаци с дължината на паролата.
  12 най-добри платформи за управление на SaaS за намаляване на вашите разходи

Добавихме допълнителен код. Но моделът е подобен на предишния код. Така че няма да срещнете никаква трудност да го разберете.

Сега е време да изпълним и проверим резултата. Вижте следното тестово изпълнение.

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 произволни знака, за да направи дължината на паролата равна на въведената от потребителя.

ура! имаме пълен генератор на силни пароли. 😎

Заключение

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

Генерирайте паролите от кода и ги използвайте за следващия си онлайн акаунт.

Докато правите това, използвайте генератора на произволни пароли pctechbg.net, за да създадете сигурни пароли.

Научете как да пишете равно или не равно на код и как да създадете тик-так-пал игра в Python.

Честито кодиране! 👩‍💻