Hogyan készítsünk véletlenszerű jelszógenerátort a Pythonban

A biztonság életünk egyik legfontosabb része. A biztonság jelentősége napról napra növekszik, mivel a legtöbb dolog az interneten történik. A jelszavak napvilágra kerülnek, amikor a biztonságról beszélünk.

Ebben a cikkben létrehozunk egy jelszógenerátort, amely segít gyorsan generálni véletlenszerű és erős jelszavakat.

Miért van szükségünk jelszógenerátorra?

Mert nem tudunk azonnal különféle jelszavak mintáira gondolni.

De ez nem ugyanaz a helyzet a számítógépekkel. A számítógépek másodpercek alatt képesek véletlenszerű és erős jelszavakat generálni testreszabásaink alapján. Számos jelszógenerátor áll rendelkezésre.

Létrehozhatjuk saját magunkat a nekünk tetsző testreszabásokkal?

Igen, biztosan létrehozhatunk egyet. És itt megmutatjuk, hogyan kell ezt csinálni.

Hozzunk létre egy jelszógenerátort.

Jelszógenerátor 💻

A saját jelszógenerátor létrehozásában az a legjobb, hogy tetszés szerint testreszabhatjuk.

Először létrehozunk egy jelszógenerátort, amely megkérdezi a jelszó hosszát, és véletlenszerűen generál egy számokat, ábécét és speciális karaktereket tartalmazó jelszót.

Ezután javítani fogjuk azáltal, hogy megkérdezzük az egyes karaktertípusok számát, például a számjegyek, ábécék és speciális karakterek számát.

Tehát minden további nélkül lássuk a jelszógenerátor Python használatával történő létrehozásának lépéseit.

Lépések

  • Tárolja az összes karaktert listaként. Használhatjuk a Python karakterlánc-modulját, vagy beírhatjuk mindegyiket.
  • Kérje meg a felhasználót, hogy adja meg a jelszó hosszát.
  • Keverje meg a karaktereket a random.shuffle módszerrel.
  • Inicializáljon egy üres listát a jelszó tárolásához.
  • Írj egy ciklust, amely a hossz-szereket iterálja.
    • Válasszon ki egy véletlenszerű karaktert az összes karakter közül a random.choice módszerrel.
    • Adja hozzá a véletlenszerű karaktert a jelszóhoz.
  • Keverje meg a kapott jelszólistát, hogy véletlenszerűbbé tegye.
  • Konvertálja a jelszólistát karakterláncsá a csatlakozási módszerrel.
  • Nyomtassa ki a jelszót.
  A Locationbar³ Az URL minden szegmensét kattinthatóvá teszi [Firefox]

Kövesse a fenti lépéseket, és próbáljon meg kódot írni. Ne aggódjon, még akkor sem, ha nem tudja megírni a kódot. Nézze meg az alábbi kódot.

Kód

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

A fenti kód magától értetődő. Most követtük a leírt lépéseket a kód írásához. Tehát nem fog problémát találni a kód megértésében, ha elolvassa a lépéseket.

Most futtassa a kódot, és hozzon létre egy jelszót. Egy példa kimenet a következő lesz.

Enter password length: 10
d&amIzK%d)

Figyelje meg a jelszót a fenti kimenetben. Van valami számjegy? Nem. Mert nincs garancia arra, hogy a program számjegyeket fog tartalmazni.

Ezután igyekszünk garantálni, hogy a program számjegyeket és speciális karaktereket tartalmazzon, és megkérjük a felhasználót, hogy adja meg a kívánt számjegyek, ábécék és speciális karakterek számát.

  A Köztünk szerverkapcsolati hibák kijavítása

Amikor a felhasználó beírja az egyes típusokhoz tartozó karakterek számát, a program beírja a megfelelő számú karaktertípust a jelszóba.

Lássuk azt a kódot, amely minden típusnál elfogadja a karakterszámot és generálja a jelszót.

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

Tehát mi a különbség az előző kód és ez a kód között?

  • Minden karaktertípushoz külön ciklusokat írtunk, hogy hozzáadjuk őket a jelszóhoz.
  • Két feltételes ellenőrzés van a teljes karakterszám érvényesítésére a jelszó hosszával.
  A sérült WAV fájlok javítása

Hozzáadtunk néhány extra kódot. De a minta hasonló az előző kódhoz. Tehát nem fog nehézséget találni a megértésében.

Most itt az ideje végrehajtani és ellenőrizni a kimenetet. Tekintse meg a következő próbaüzemet.

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

Ha látja a jelszót, amely ezúttal generált, akkor az a felhasználó által kívánt minimális számú karakterből áll. És a program tartalmaz még 2 véletlenszerű karaktert, hogy a jelszó hossza megegyezzen a felhasználói bevitellel.

Hurrá! van egy komplett erős jelszógenerátorunk. 😎

Következtetés

Láttuk, hogyan hozhatunk létre jelszógenerátort a semmiből. Adhatunk hozzá további funkciókat? Igen, annyit adhatunk hozzá, amennyit akarunk. De győződjön meg arról, hogy az eredményül kapott jelszó elég erős.

Hozza létre a jelszavakat a kódból, és használja őket következő online fiókjához.

Miközben ezt teszi, használja a etoppc.com Random Password Generatort biztonságos jelszavak létrehozásához.

Tanulja meg, hogyan írjon egyenlő vagy nem egyenlő kódot, és hogyan készítsen tic-tac-toe játékot Pythonban.

Boldog kódolást! 👩‍💻