Sigurnost predstavlja ključni aspekt naših života. Njena važnost neprestano raste, pogotovo imajući u vidu da se sve veći broj aktivnosti obavlja online. Kada govorimo o sigurnosti, lozinke zauzimaju centralno mesto.
U ovom tekstu, fokusiraćemo se na kreiranje generatora lozinki. Ovaj alat će nam omogućiti da brzo stvaramo nasumične i snažne lozinke.
Zašto nam je potreban generator lozinki?
Jednostavno, ljudski mozak ne može tako lako smisliti raznolike i kompleksne obrasce za lozinke.
Međutim, računari su u tome izuzetno efikasni. Oni mogu generisati slučajne i jake lozinke, uzimajući u obzir naše specifikacije, i to za samo nekoliko sekundi. Danas postoji veliki broj generatora lozinki.
Ali, možemo li napraviti sopstveni, koji bi bio prilagođen našim potrebama?
Naravno, to je potpuno izvodljivo! Pokazaćemo vam kako to možete ostvariti.
Započnimo sa kreiranjem generatora lozinki.
Generator lozinki 💻
Najbolja stvar kod pravljenja sopstvenog generatora lozinki je to što ga možemo oblikovati prema ličnim željama.
Prvo ćemo konstruisati generator koji traži dužinu lozinke i zatim generiše nasumičnu lozinku sa brojevima, slovima i specijalnim simbolima.
Zatim ćemo ga unaprediti, tako da pita korisnika za broj svakog tipa karaktera, tj. koliko brojeva, slova i specijalnih simbola želi da koristi.
Bez daljeg odlaganja, krenimo na korake za pravljenje generatora lozinki uz pomoć Python-a.
Koraci
- Sve moguće karaktere sačuvajte u listu. Možemo koristiti string modul Python-a ili ih ručno uneti.
- Zatražite od korisnika da unese željenu dužinu lozinke.
- Izmešajte karaktere koristeći metodu random.shuffle.
- Inicijalizujte praznu listu za čuvanje lozinke.
- Napravite petlju koja se ponavlja onoliko puta koliko iznosi dužina lozinke.
- Izaberite nasumični karakter iz liste svih karaktera koristeći random.choice.
- Dodajte taj nasumični karakter u listu lozinki.
- Izmešajte dobijenu listu lozinki kako biste je učinili još nasumičnijom.
- Pretvorite listu lozinki u string pomoću metode join.
- Odštampajte generisanu lozinku.
Pratite ove korake i pokušajte da napišete kod. Ne brinite ako vam to ne pođe za rukom. Pogledajte kod koji smo pripremili.
Kod
import string import random ## Karakteri od kojih se generiše lozinka characters = list(string.ascii_letters + string.digits + "[email protected]#$%^&*()") def generate_random_password(): ## Dužina lozinke koju unosi korisnik length = int(input("Unesite dužinu lozinke: ")) ## Mešanje karaktera random.shuffle(characters) ## Biranje nasumičnih karaktera sa liste password = [] for i in range(length): password.append(random.choice(characters)) ## Mešanje dobijene lozinke random.shuffle(password) ## Pretvaranje liste u string ## Štampanje lozinke print("".join(password)) ## Pozivanje funkcije generate_random_password()
Gornji kod je prilično jednostavan za razumevanje. Samo smo pratili korake koje smo opisali. Zbog toga ne biste trebali imati problema sa razumevanjem koda ako ste pročitali uputstva.
Sada pokrenite kod i generišite lozinku. Primer izlaznog rezultata je sledeći:
Unesite dužinu lozinke: 10 d&amIzK%d)
Obratite pažnju na lozinku u primeru. Da li ima brojeva? Ne. Razlog je taj što program ne garantuje da će uključiti brojeve.
Stoga, pokušavamo da garantujemo da će program uključiti brojeve i specijalne simbole, tako što ćemo od korisnika tražiti da unese broj brojeva, slova i specijalnih simbola koje želi.
Kada korisnik unese broj karaktera za svaki tip, program će uključiti odgovarajući broj karaktera svakog tipa u lozinku.
Pogledajmo sada kod koji prihvata broj karaktera za svaki tip i generiše lozinku.
import string import random ## Karakteri od kojih se generiše lozinka 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(): ## Dužina lozinke koju unosi korisnik length = int(input("Unesite dužinu lozinke: ")) ## Broj karaktera svakog tipa alphabets_count = int(input("Unesite broj slova u lozinci: ")) digits_count = int(input("Unesite broj brojeva u lozinci: ")) special_characters_count = int(input("Unesite broj specijalnih simbola u lozinci: ")) characters_count = alphabets_count + digits_count + special_characters_count ## Provera da li je ukupan broj karaktera veći od dužine lozinke ## Ispisuje poruku da je unos nevalidan ako je suma veća od dužine if characters_count > length: print("Ukupan broj karaktera je veći od dužine lozinke") return ## Inicijalizacija lozinke password = [] ## Biranje nasumičnih slova for i in range(alphabets_count): password.append(random.choice(alphabets)) ## Biranje nasumičnih brojeva for i in range(digits_count): password.append(random.choice(digits)) ## Biranje nasumičnih specijalnih simbola for i in range(special_characters_count): password.append(random.choice(special_characters)) ## Ako je ukupan broj karaktera manji od dužine lozinke ## Dodaj nasumične karaktere kako bi se dužina poklopila if characters_count < length: random.shuffle(characters) for i in range(length - characters_count): password.append(random.choice(characters)) ## Mešanje dobijene lozinke random.shuffle(password) ## Pretvaranje liste u string ## Štampanje lozinke print("".join(password)) ## Pozivanje funkcije generate_random_password()
Koja je razlika između prethodnog i ovog koda?
- Napisali smo posebne petlje za svaki tip karaktera da bismo ih dodali lozinci.
- Postoje dve provere uslova da bismo proverili ukupan broj karaktera u odnosu na dužinu lozinke.
Dodali smo još koda. Ali, struktura je slična prethodnom kodu. Zato ne biste trebali imati nikakvih problema sa razumevanjem.
Sada je vreme da pokrenete kod i proverite izlaz. Pogledajte sledeći primer.
Unesite dužinu lozinke: 10 Unesite broj slova u lozinci: 3 Unesite broj brojeva u lozinci: 2 Unesite broj specijalnih simbola u lozinci: 3 V2(&#XlQq1
Ako pogledate lozinku koja je generisana sada, ona ima minimalni broj karaktera koji je korisnik zadao. Program je dodao još 2 nasumična karaktera da bi dužina lozinke bila jednaka korisničkom unosu.
Ura! Sada imamo kompletan generator snažnih lozinki. 😎
Zaključak
Videli smo kako da kreiramo generator lozinki od početka. Možemo li mu dodati još funkcionalnosti? Naravno, možemo dodati onoliko koliko želimo. Ali, pobrinite se da generisana lozinka bude dovoljno jaka.
Generišite lozinke pomoću ovog koda i koristite ih za svoje online naloge.
U međuvremenu, isprobajte vdsvds Generator nasumičnih lozinki za kreiranje sigurnih lozinki.
Naučite kako da napišete kod za proveru jednakosti i nejednakosti i kako da napravite igru iks-oks u Python-u.
Srećno kodiranje! 👩💻