Sådan opretter du en tilfældig adgangskodegenerator i Python

Sikkerhed er en af ​​de mest afgørende dele af vores liv. Betydningen af ​​sikkerhed stiger dag for dag, da det meste foregår online. Adgangskoder kommer frem i lyset, når vi taler om sikkerhed.

I denne artikel vil vi oprette en adgangskodegenerator, der hjælper os med at generere tilfældige og stærke adgangskoder hurtigt.

Hvorfor har vi brug for en adgangskodegenerator?

Fordi vi ikke kan tænke på forskellige mønstre af adgangskoder med det samme.

Men det er ikke det samme med computere. Computere kan generere tilfældige og stærke adgangskoder baseret på vores tilpasninger på få sekunder. Der er mange adgangskodegeneratorer tilgængelige.

Kan vi skabe vores eget med de tilpasninger, vi kan lide?

Ja, vi kan helt sikkert lave en. Og her skal vi vise dig, hvordan du gør det.

Lad os oprette en adgangskodegenerator.

Adgangskodegenerator 💻

Det bedste ved at skabe vores egen adgangskodegenerator er, at vi kan tilpasse den, som vi vil.

Først vil vi oprette en adgangskodegenerator, der spørger om længden af ​​adgangskoden og genererer en tilfældig adgangskode, der indeholder cifre, alfabeter og specialtegn.

Dernæst vil vi forbedre det ved at spørge antallet af hver type tegn, som antallet af cifre, alfabeter og specialtegn.

Så lad os uden videre se trinene til at oprette en adgangskodegenerator ved hjælp af Python.

  iPadOS vil næsten gøre din iPad til en rigtig computer

Trin

  • Gem alle tegnene som en liste. Vi kan bruge strengmodulet i Python eller skrive dem alle sammen.
  • Bed brugeren om at indtaste længden af ​​adgangskoden.
  • Bland tegnene ved hjælp af random.shuffle-metoden.
  • Initialiser en tom liste for at gemme adgangskoden.
  • Skriv en løkke, der gentager længde gange.
    • Vælg et tilfældigt tegn blandt alle tegnene ved hjælp af random.choice-metoden.
    • Føj det tilfældige tegn til adgangskoden.
  • Bland den resulterende adgangskodeliste for at gøre den mere tilfældig.
  • Konverter adgangskodelisten til streng ved hjælp af joinmetoden.
  • Udskriv adgangskoden.

Følg ovenstående trin, og prøv at skrive kode. Bare rolig, selvom du ikke er i stand til at skrive koden. Tjek 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()

Ovenstående kode er selvforklarende. Vi har lige fulgt de beskrevne trin for at skrive kode. Så du vil ikke finde noget problem med at forstå koden, hvis du læser trinene.

Kør nu koden og generer en adgangskode. Et eksempel på output vil være som følger.

Enter password length: 10
d&amIzK%d)

Overhold adgangskoden i ovenstående output. Er der et ciffer? Nej. For der er ingen garanti for, at programmet vil indeholde cifre.

  Sådan installeres Google Chrome-udvidelser i Microsoft Edge

Dernæst forsøger vi at garantere, at programmet vil indeholde cifre og specialtegn ved at bede brugeren om at indtaste det antal cifre, alfabeter og specialtegn, de ønsker.

Når brugeren indtaster antallet af tegn for hver type, vil programmet inkludere det respektive antal tegntyper i adgangskoden.

Lad os se koden, der accepterer antallet af tegn for hver type og genererer adgangskoden.

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å hvad er forskellen mellem den tidligere kode og denne kode?

  • Vi har skrevet separate loops for hver type karakter for at tilføje dem til adgangskoden.
  • Der er to betingede kontroller for at validere det samlede antal tegn med adgangskodelængde.
  Sådan gemmer du et websted som PDF på iPhone og iPad

Vi har tilføjet noget ekstra kode. Men mønsteret ligner den forrige kode. Så du vil ikke finde nogen problemer med at forstå det.

Nu er det tid til at udføre og kontrollere outputtet. Se på følgende testkørsel.

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 adgangskoden genereret denne gang, har den det mindste antal tegn, som brugeren ønsker. Og programmet har inkluderet yderligere 2 tilfældige tegn for at gøre adgangskodens længde lig med brugerinput.

Hurra! vi har en komplet stærk adgangskodegenerator. 😎

Konklusion

Vi har set, hvordan man opretter en adgangskodegenerator fra bunden. Kan vi tilføje flere funktioner til det? Ja, vi kan tilføje så mange, vi vil. Men sørg for, at den resulterende adgangskode er stærk nok.

Generer adgangskoderne fra koden, og brug dem til din næste onlinekonto.

Mens du gør det, skal du bruge toadmin.dk Random Password Generator til at oprette sikre adgangskoder.

Lær, hvordan du skriver lig med eller ikke lig med kode, og hvordan du bygger et tic-tac-toe-spil i Python.

God kodning! 👩‍💻