Data er en viktig ressurs i dagens digitale verden. Mer enn åtte millioner mennesker blir ofre for hackere hvert år, og mer enn 2200 nettangrep finner sted hver dag. Med en så alarmerende frekvens av nettkriminalitet, blir det en prioritet å bruke beste praksis for å beskytte mot hackere. En av de viktigste aspektene ved enhver konto er passordet.
Hvis en hacker kompromitterer passordet ditt, kan de få tilgang til din personlige informasjon, og til og med bankkontoen din, i løpet av få minutter. Selv om dette høres skummelt ut, kan du lære hvordan du sikrer passordene dine ved å bruke beste praksis ved å bygge ditt eget Python-program for å sjekke styrken.
Ulike regler for å angi sterke passord
Noen sterke passordregler du kan vurdere å implementere er:
- Passordet bør være på minst 12 tegn. Jo lengre passordet er, jo mindre sjanse er det for at et brute force-angrep kompromitterer det.
- Passordet skal inneholde en kombinasjon av små bokstaver, store bokstaver, tall og spesialtegn.
- Unngå å gjenta tegn i passordet.
- Den skal ikke inneholde personlige opplysninger som navn, telefonnumre eller noe som noen lett kan gjette.
- Det bør ikke være et vanlig ordbokord, selv om du kan bruke ord i lengre passordfraser.
- Passordet skal ikke være det samme for flere kontoer. Du kan sette opp en passordbehandling å autofylle forskjellige passord for forskjellige nettsteder uten å huske hver enkelt av dem.
Det er forskjellige måter å lag et ubrytelig passord som du kan huske. Noen av dem bruker barnerim, sitater fra filmer, industrispråk og mer.
Slik sjekker du passordstyrken din ved å bruke Python
Du kan bygge et program for å teste passordstyrken ved å sjekke egenskapene ovenfor. For denne konstruksjonen trenger du to moduler: streng og samlinger.
Du kan også bruke få pass modul for å skjule et passord når brukeren taster det inn. Dette bidrar til å beskytte passordet ditt når du må skrive det inn offentlig. For å installere getpass i ditt lokale miljø, åpne en terminal og skriv inn:
pip installere få pass4
Du kan bruke String-klassen til å sjekke om et tegn er en bokstav, et siffer eller et symbol. Du kan bruke samlinger for å sjekke om det er tegn i passordet som gjentar seg.
Bruk nøkkelordet def for å definere en funksjon med navn check_password_strength() og gi passordet du får som parameter til det.
Initialiser seks variabler: lavere_alfatall, øvre_alfa_antall, antall_antall, special_char_count, length, felles til null. Disse vil sjekke tilstedeværelsen av små bokstaver, store bokstaver, sifre, spesialtegn, lengde, repetisjon av tegn i et passord.
Send passordet du får fra brukeren til liste() funksjon for å konvertere den til en liste med tegn. Bruk for-løkken, iterer over hvert tegn i listen. Bruk if-else-setningen for å sjekke om tegnet er et små bokstaver, store bokstaver, tall eller et spesialtegn, og oppdater henholdsvis antallet.
Du kan anta at alt annet fra alfabetet eller tall er et spesialtegn. For mer begrensning kan du lagre spesialtegn som en streng og sjekke om passordets tegn er til stede i den. I tillegg lar noen nettsteder deg bruke mellomrom i et passord. Du kan angi en annen variabel og øke den eller vurdere den i selve spesialtegntellingen.
import streng
import samlingerdefcheck_password_styrke(passord):
lower_alpha_count = øvre_alpha_count = number_count = special_char_count = lengde = vanlig = 0
til røye inn liste(passord):
hvisrøye i string.ascii_lowercase:
lower_alpha_count += 1
elif røye i string.ascii_uppercase:
øvre_alfatall += 1
elif røye i string.digits:
tall_antall += 1
ellers:
special_char_count += 1
Du trenger en passordliste eller database for å sjekke om brukerens passord er vanlig. Du kan laste ned en liste over en million mest populære passord fra SecLists' Common-Credential GitHub-depot.
Lagre tekstfilen som common_password_list.txt. Bruk with-setningen for å utføre unntakshåndtering og åpne passordfilen i lesemodus. Bruke lese() funksjon for å få innholdet til stede i filen og lagre det i en variabel kalt innhold.
Hvis passordet brukeren skriver inn ikke finnes i listen over felles passord, øker du verdien til den felles variabelen med én.
medåpen("common_password_list.txt", 'r') somfil:
innhold = file.read()
hvis passord ikke er i innholdet:
vanlig += 1
For å sjekke lengden på passordet, send det til len() funksjon og sjekk om den er større enn eller lik tolv. I så fall øker du verdien til lengdevariabelen.
hvislen(passord) >= 12:
lengde += 1
For å se etter repetisjon av tegn i passord, bruk Counter-underklassen fra Samlinger. Teller er en uordnet samling av nøkkel- og verdipar der nøkkelen er selve elementet og verdien er antall element.
Bruk listeforståelsesmetoden for å lage en liste over gjentatte tegn fra ordboken du får ved hjelp av samlinger. Iterer over ordboken og sjekk om antallet av tegnet er større enn én. Hvis antallet er større, legg det til en liste og lagre det i gjentatte.
countOfWords = samlinger. Teller (passord)
gjentatt = [i for i i countOfWords hvis countOfWords[i] > 1]
Nå som du har verdiene til de individuelle egenskapene, initialiser en variabel kalt styrke til null. Som navnet antyder, vil du se denne variabelen for å sjekke styrken til passordet. Poengsystemet er av syv, ett poeng for hver inkludering av en karakter og karakteristikk av et sterkt passord.
Sjekk om antallet små bokstaver, store bokstaver, tall, spesialtegn er større enn eller lik én, og øk styrken med én for hver tilstedeværelse. På samme måte, sjekk om lengden og den felles variabelen er lik én og om lengden på gjentatte tegn er lik null. Hvis det er sant, øker du verdien av styrkevariabelen.
styrke = 0
hvis lavere_alfatall >= 1:
styrke += 1hvis øvre_alfa_antall >= 1:
styrke += 1if number_count >= 1:
styrke += 1if special_char_count >= 1:
styrke += 1hvis lengde == 1:
styrke += 1hvis vanlig == 1:
styrke += 1
hvislen(gjentatt)== 0:
styrke += 1
Bruk flerlinjestrengen (tre anførselstegn) for å vise flere linjer med tekst i en enkelt utskriftssetning. Bruk den bokstavelige Sring-interpolasjonen eller f-strengene eller for å vise antall karakteristikker. Du kan oppnå dette ved å skrive f på begynnelsen av strengen i print-setningen og omslutt variablene i krøllede parenteser. Du bruker strenginterpolasjon ettersom innholdet i utskriftssetningen er en streng, men verdien til variablene er et heltall.
skrive ut(f"""Passordet ditt har:-
{lower_alpha_count} små bokstaver
{upper_alpha_count} store bokstaver
{number_count} sifre
{special_char_count} spesialtegn
{length} lengde
{common} vanlig
{repeted} gjentatt
"Passordscore: {styrke}/7""")
Til slutt, bruk inndatasetningen for å motta passordet fra brukeren og sende det til check_password_styrke funksjon. Basert på styrken til passordet, vil programmet vise poengsummen sammen med tellingen av egenskapene til stede i passordet.
passord = input("Skriv inn passordet:")
check_password_strength (passord)
Utdata fra Passordstyrkekontroll
Når du skriver inn et sterkt passord basert på de nevnte egenskapene, viser Python-programmet styrken som 7/7:
Når du skriver inn et svakt og vanlig passord, viser Python-programmet styrken som 1/7:
Passord og sikkerhet
Selv om du kan angi det sterkeste passordet noensinne, er det andre måter en hacker kan bryte seg inn i systemet ditt på. 95 % av nettangrepene er et resultat av menneskelige feil. En av de vanligste metodene hackere bruker er sosial ingeniørkunst. Hackeren kan sende deg falske lenker til sosiale medier eller e-handelsnettsteder som ser legitime ut, men kompromitterer passordet ditt hvis du bruker dem.
For å beskytte mot disse teknikkene, sørg for å bare åpne koblinger fra en pålitelig kilde og bare legge inn eller lagre viktig informasjon sikkert.