Čitatelji poput vas podržavaju MUO. Kada kupite putem poveznica na našoj stranici, možemo zaraditi partnersku proviziju. Čitaj više.

Podaci su vitalna imovina u današnjem digitalnom svijetu. Više od osam milijuna ljudi postaje žrtvama hakera svake godine, a više od 2200 kibernetičkih napada dogodi se svaki dan. Uz tako alarmantnu stopu kibernetičkog kriminala, korištenje najboljih praksi za zaštitu od hakera postaje prioritet. Jedan od najvažnijih aspekata svakog računa je njegova lozinka.

Ako haker kompromitira vašu lozinku, može dobiti pristup vašim osobnim podacima, pa čak i vašem bankovnom računu, u roku od nekoliko minuta. Iako ovo zvuči zastrašujuće, možete naučiti kako zaštititi svoje lozinke korištenjem najboljih praksi izgradnjom vlastitog Python programa za provjeru njegove snage.

Različita pravila za postavljanje jakih lozinki

Neka jaka pravila za lozinku koja biste mogli razmotriti su:

  1. Lozinka mora imati najmanje 12 znakova. Što je lozinka duža, manja je šansa da će je kompromitirati napad brutalnom silom.
  2. instagram viewer
  3. Lozinka bi trebala sadržavati kombinaciju malih slova, velikih slova, brojeva i posebnih znakova.
  4. Izbjegavajte ponavljanje znakova u zaporci.
  5. Ne smije sadržavati osobne podatke poput imena, telefonskih brojeva ili bilo čega što netko može lako pogoditi.
  6. To ne bi trebala biti uobičajena riječ iz rječnika, iako možete koristiti riječi u duljim izrazima zaporke.
  7. Lozinka ne smije biti ista za više računa. Možeš postaviti upravitelja lozinkama za automatsko popunjavanje različitih lozinki za različite stranice bez pamćenja svake od njih.

Postoje različiti načini za stvorite neprobojnu lozinku koju možete zapamtiti. Neki od njih koriste dječje pjesmice, citate iz filmova, industrijski žargon i još mnogo toga.

Kako provjeriti snagu vaše lozinke pomoću Pythona

Možete izraditi program za testiranje snage lozinke provjerom gornjih karakteristika. Za ovu izgradnju trebat će vam dva modula: niz i zbirke.

Također možete koristiti getpass modul za skrivanje lozinke dok je korisnik unosi. To pomaže u zaštiti vaše lozinke kada je morate upisivati ​​javno. Da biste instalirali getpass u vašem lokalnom okruženju, otvorite terminal i upišite:

pip instalirati getpass4

Možete koristiti klasu String da provjerite je li znak slovo, znamenka ili simbol. Možete koristiti zbirke kako biste provjerili postoje li znakovi u zaporci koji se ponavljaju.

Koristite ključnu riječ def za definiranje funkcije pod nazivom provjeri snagu_lozinke() i proslijedite mu lozinku koju ćete dobiti kao parametar.

Inicijalizirajte šest varijabli: niži_alfa_broj, gornji_alfa_broj, broj_broj, poseban_broj_znakova, dužina, uobičajen na nulu. Oni će provjeriti prisutnost malih slova abecede, velikih slova, znamenki, posebnih znakova, duljine, ponavljanja znakova u zaporci.

Proslijedite lozinku koju ste dobili od korisnika popis() funkciju za pretvaranje u popis znakova. Koristeći for petlju, iterirajte svaki znak na popisu. Upotrijebite naredbu if-else da provjerite je li znak mala abeceda, velika abeceda, broj ili poseban znak i ažurirajte broj.

Možete pretpostaviti da je bilo što drugo od abecede ili broja poseban znak. Za više ograničenja, možete pohraniti posebne znakove kao niz i provjeriti postoji li znak lozinke u njemu. Osim toga, neka web-mjesta dopuštaju korištenje razmaka u zaporci. Možete postaviti drugu varijablu i povećati je ili je uzeti u obzir u samom broju posebnih znakova.

uvoz niz
uvoz zbirke

defprovjeri snagu_lozinke(lozinka):
niži_alfa_broj = gornji_alfa_broj = broj_broja = broj_posebnih_znakova = duljina = uobičajeno = 0

za pougljeniti popis(lozinka):
akochar u nizu.ascii_lowercase:
niži_alfa_broj += 1
elif char u string.ascii_uppercase:
gornji_alfa_broj += 1
elif char u string.digits:
broj_broj += 1
drugo:
poseban_broj_znakova += 1

Trebat će vam popis lozinki ili baza podataka da provjerite je li korisnička lozinka uobičajena. Možete preuzeti popis od milijun najpopularnijih lozinki s SecLists's Common-Credential GitHub repozitorij.

Spremite tekstualnu datoteku kao common_password_list.txt. Koristite naredbu with za izvođenje rukovanja iznimkama i otvaranje datoteke lozinke u načinu čitanja. Koristiti čitati() funkcija za dobivanje sadržaja koji se nalazi u datoteci i pohranjivanje u varijablu pod nazivom content.

Ako lozinka koju korisnik unese nije prisutna na popisu zajedničkih lozinki, povećajte vrijednost zajedničke varijable za jedan.

sotvoren("common_password_list.txt", 'r') kaodatoteka:
sadržaj = file.read()

ako lozinka nije u sadržaju:
uobičajeno += 1

Da biste provjerili duljinu lozinke, jednostavno je proslijedite na dužina () funkciju i provjeri je li veća ili jednaka dvanaest. Ako je tako, povećajte vrijednost varijable duljine.

akoleća(lozinka) >= 12:
duljina += 1

Za provjeru ponavljanja znakova u zaporci koristite podklasu Brojač iz Zbirki. Brojač je neuređena zbirka parova ključeva i vrijednosti gdje je ključ sam element, a vrijednost je broj elementa.

Upotrijebite metodu razumijevanja popisa za izradu popisa znakova koji se ponavljaju iz rječnika koji dobivate korištenjem zbirki. Iterirajte po rječniku i provjerite je li broj znakova veći od jedan. Ako je broj veći, dodajte ga na popis i pohranite u ponavljanje.

 countOfWords = zbirke. Brojač (lozinka)
ponovljeno = [i za i u countOfWords ako je countOfWords[i] > 1]

Sada kada imate vrijednosti pojedinačnih karakteristika, inicijalizirajte varijablu pod nazivom snaga na nulu. Kao što naziv sugerira, ovu varijablu ćete vidjeti za provjeru snage lozinke. Sustav bodovanja je od sedam, jedan bod za svako uključivanje znaka i karakteristike jake lozinke.

Provjerite je li broj malih slova abecede, velikih slova, brojeva, posebnih znakova veći ili jednak jedan i povećajte snagu za jedan za svaku prisutnost. Slično provjerite jesu li duljina i zajednička varijabla jednake jedinici i je li duljina ponovljenog znaka jednaka nuli. Ako je istina, povećajte vrijednost varijable snage.

 snaga = 0

ako je niži_alfa_broj >= 1:
snaga += 1

ako je upper_alpha_count >= 1:
snaga += 1

ako je broj_broja >= 1:
snaga += 1

ako je special_char_count >= 1:
snaga += 1

ako je duljina == 1:
snaga += 1

ako je uobičajeno == 1:
snaga += 1

akoleća(ponavlja se)== 0:
snaga += 1

Koristite višeredni niz (tri navodnika) za prikaz više redaka teksta u jednoj izjavi za ispis. Upotrijebite doslovnu interpolaciju nizova ili f-stringove ili za prikaz broja karakteristika. To možete postići pisanjem f na početku niza u izjavi za ispis i stavite varijable u vitičaste zagrade. Interpolaciju niza koristite jer je sadržaj unutar naredbe za ispis niz, ali je vrijednost varijabli cijeli broj.

ispisati(f"""Vaša lozinka ima: - 
{lower_alpha_count} mala slova
{upper_alpha_count} velika slova
{number_count} znamenki
{special_char_count} posebnih znakova
{length} duljina
{common} uobičajeno
{repeated} ponovljeno
"Ocjena zaporke: {snaga}/7""")

Na kraju, upotrijebite naredbu za unos da primite lozinku od korisnika i proslijedite je provjeri snagu_lozinke funkcija. Na temelju snage lozinke, program će prikazati rezultat zajedno s brojem karakteristika prisutnih u lozinci.

lozinka = unos("Unesite lozinku: ")
check_password_strength (lozinka)

Izlaz alata za provjeru snage lozinke

Nakon unosa jake lozinke na temelju navedenih karakteristika, program Python prikazuje snagu kao 7/7:

Prilikom unosa slabe i uobičajene lozinke, program Python prikazuje snagu kao 1/7:

Lozinke i sigurnost

Iako možete postaviti najjaču lozinku ikada, postoje i drugi načini na koje haker može provaliti u vaš sustav. 95% kibernetičkih napada rezultat je ljudske pogreške. Jedna od najčešćih metoda koju hakeri koriste je društveni inženjering. Haker vam može poslati krivotvorene poveznice na društvene medije ili web stranice e-trgovine koje izgledaju legitimno, ali kompromitiraju vašu lozinku ako ih koristite.

Kako biste se zaštitili od ovih tehnika, otvorite samo veze iz pouzdanog izvora i samo unosite ili pohranjujte važne informacije na siguran način.