Hur man skapar en slumpmässig lösenordsgenerator i Python

Säkerhet är en av de mest avgörande delarna av våra liv. Betydelsen av säkerhet ökar dag för dag eftersom det mesta går online. Lösenord kommer i ljuset när vi pratar om säkerhet.

I den här artikeln kommer vi att skapa en lösenordsgenerator som hjälper oss att snabbt generera slumpmässiga och starka lösenord.

Varför behöver vi en lösenordsgenerator?

Eftersom vi inte kan tänka på olika lösenordsmönster direkt.

Men det är inte samma sak med datorer. Datorer kan generera slumpmässiga och starka lösenord baserat på våra anpassningar på några sekunder. Det finns många lösenordsgeneratorer tillgängliga.

Kan vi skapa våra egna med de anpassningar vi gillar?

Ja, vi kan definitivt skapa en. Och här ska vi visa dig hur du gör det.

Låt oss skapa en lösenordsgenerator.

Innehållsförteckning

Lösenordsgenerator 💻

Det bästa med att skapa vår egen lösenordsgenerator är att vi kan anpassa den som vi vill.

Först kommer vi att skapa en lösenordsgenerator som frågar längden på lösenordet och genererar ett slumpmässigt lösenord som innehåller siffror, alfabet och specialtecken.

Därefter kommer vi att förbättra det genom att fråga numret på varje typ av tecken, som antalet siffror, alfabet och specialtecken.

Så, utan vidare, låt oss se stegen för att skapa en lösenordsgenerator med Python.

Steg

  • Lagra alla tecken som en lista. Vi kan använda strängmodulen i Python eller skriva alla.
  • Be användaren att ange längden på lösenordet.
  • Blanda tecknen med metoden random.shuffle.
  • Initiera en tom lista för att lagra lösenordet.
  • Skriv en slinga som itererar längd gånger.
    • Välj ett slumpmässigt tecken från alla tecken med metoden random.choice.
    • Lägg till det slumpmässiga tecknet till lösenordet.
  • Blanda den resulterande lösenordslistan för att göra den mer slumpmässig.
  • Konvertera lösenordslistan till sträng med hjälp av joinmetoden.
  • Skriv ut lösenordet.

Följ stegen ovan och försök att skriva kod. Oroa dig inte, även om du inte kan skriva koden. Kolla in koden nedan.

Koda

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

Ovanstående kod är självförklarande. Vi har precis följt stegen som beskrivs för att skriva kod. Så du kommer inte hitta några problem med att förstå koden om du läser stegen.

Kör nu koden och generera ett lösenord. Ett exempel på utdata kommer att vara följande.

Enter password length: 10
d&amIzK%d)

Observera lösenordet i utgången ovan. Finns det någon siffra? Nej. Eftersom det inte finns någon garanti för att programmet kommer att innehålla siffror.

Därefter försöker vi garantera att programmet kommer att innehålla siffror och specialtecken genom att be användaren att ange antalet siffror, alfabet och specialtecken de vill ha.

När användaren anger antalet tecken för varje typ, kommer programmet att inkludera respektive antal teckentyper i lösenordet.

Låt oss se koden som accepterar antalet tecken för varje typ och genererar lösenordet.

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

Så, vad är skillnaden mellan den tidigare koden och den här koden?

  • Vi har skrivit separata loopar för varje typ av tecken för att lägga till dem i lösenordet.
  • Det finns två villkorskontroller för att validera det totala antalet tecken med lösenordslängd.

Vi har lagt till lite extra kod. Men mönstret liknar den tidigare koden. Så du kommer inte att ha några svårigheter att förstå det.

Nu är det dags att köra och kontrollera utdata. Titta på följande testkörning.

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

Om du ser lösenordet genererat den här gången har det det minsta antal tecken som användaren vill ha. Och programmet har inkluderat ytterligare 2 slumpmässiga tecken för att göra lösenordslängden lika med användarinmatning.

hurra! vi har en komplett stark lösenordsgenerator. 😎

Slutsats

Vi har sett hur man skapar en lösenordsgenerator från början. Kan vi lägga till fler funktioner till den? Ja, vi kan lägga till så många vi vill. Men se till att det resulterande lösenordet är tillräckligt starkt.

Generera lösenorden från koden och använd dem för ditt nästa onlinekonto.

Medan du gör det, använd adminvista.com Random Password Generator för att skapa säkra lösenord.

Lär dig hur man skriver lika med eller inte lika med kod och hur man bygger ett tic-tac-toe-spel i Python.

Glad kodning! 👩‍💻