Hvordan lage en tilfeldig passordgenerator i Python

Sikkerhet er en av de mest avgjørende delene av livene våre. Betydningen av sikkerhet øker dag for dag ettersom det meste går på nett. Passord kommer frem i lyset når vi snakker om sikkerhet.

I denne artikkelen vil vi lage en passordgenerator som hjelper oss å generere tilfeldige og sterke passord raskt.

Hvorfor trenger vi en passordgenerator?

Fordi vi ikke kan tenke på forskjellige mønstre av passord umiddelbart.

Men det er ikke det samme tilfellet med datamaskiner. Datamaskiner kan generere tilfeldige og sterke passord basert på våre tilpasninger i løpet av sekunder. Det er mange passordgeneratorer tilgjengelig.

Kan vi lage våre egne med tilpasningene vi liker?

Ja, vi kan definitivt lage en. Og her skal vi vise deg hvordan du gjør det.

La oss lage en passordgenerator.

Innholdsfortegnelse

Passordgenerator 💻

Det beste med å lage vår egen passordgenerator er at vi kan tilpasse den slik vi vil.

Først vil vi lage en passordgenerator som spør om lengden på passordet og genererer et tilfeldig passord som inneholder sifre, alfabeter og spesialtegn.

Deretter vil vi forbedre det ved å spørre nummeret på hver type tegn, som antall sifre, alfabeter og spesialtegn.

Så, uten videre, la oss se trinnene for å lage en passordgenerator ved hjelp av Python.

  Slik kopierer du en mappe i Google Disk

Trinn

  • Lagre alle tegnene som en liste. Vi kan bruke strengmodulen til Python eller skrive inn alle.
  • Be brukeren angi lengden på passordet.
  • Bland tegnene ved å bruke random.shuffle-metoden.
  • Initialiser en tom liste for å lagre passordet.
  • Skriv en løkke som gjentar lengde ganger.
    • Velg et tilfeldig tegn fra alle tegnene ved å bruke random.choice-metoden.
    • Legg til det tilfeldige tegnet til passordet.
  • Bland den resulterende passordlisten for å gjøre den mer tilfeldig.
  • Konverter passordlisten til streng ved hjelp av join-metoden.
  • Skriv ut passordet.

Følg trinnene ovenfor og prøv å skrive kode. Ikke bekymre deg, selv om du ikke er i stand til å skrive koden. Sjekk ut koden nedenfor.

Kode

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

Koden ovenfor er selvforklarende. Vi har nettopp fulgt trinnene beskrevet for å skrive kode. Så du vil ikke finne noe problem med å forstå koden hvis du leser trinnene.

Kjør nå koden og generer et passord. Et eksempelutgang vil være som følger.

Enter password length: 10
d&amIzK%d)

Følg passordet i utgangen ovenfor. Er det noe siffer? Nei. For det er ingen garanti for at programmet vil inneholde sifre.

  Få varsler for TV-programmer, konserter, spill, regn og mer

Deretter prøver vi å garantere at programmet vil inneholde sifre og spesialtegn ved å be brukeren om å angi antall sifre, alfabeter og spesialtegn de ønsker.

Når brukeren legger inn antall tegn for hver type, vil programmet inkludere det respektive antallet tegntyper i passordet.

La oss se koden som godtar antall tegn for hver type og genererer passordet.

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å, hva er forskjellen mellom den forrige koden og denne koden?

  • Vi har skrevet separate løkker for hver type tegn for å legge dem til passordet.
  • Det er to betingede kontroller for å validere det totale antall tegn med passordlengde.
  7 Apache Cassandra-overvåkingsverktøy for å holde øye med databaseytelse

Vi har lagt til litt ekstra kode. Men mønsteret ligner på den forrige koden. Så du vil ikke finne noen problemer med å forstå det.

Nå er det på tide å utføre og sjekke utdataene. Se på følgende testkjøring.

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

Hvis du ser passordet generert denne gangen, har det minimum antall tegn som brukeren ønsker. Og programmet har inkludert 2 flere tilfeldige tegn for å gjøre passordlengden lik brukerinndata.

Hurra! vi har en komplett sterk passordgenerator. 😎

Konklusjon

Vi har sett hvordan du lager en passordgenerator fra bunnen av. Kan vi legge til flere funksjoner til den? Ja, vi kan legge til så mange vi vil. Men sørg for at det resulterende passordet er sterkt nok.

Generer passordene fra koden og bruk dem for din neste nettkonto.

Mens du gjør det, bruk tipsbilk.net Random Password Generator for å lage sikre passord.

Lær hvordan du skriver lik eller ikke lik kode og hvordan du bygger et tikk-tac-toe-spill i Python.

Lykke til med koding! 👩‍💻