Data er et vigtigt aktiv i nutidens digitale verden. Mere end otte millioner mennesker bliver ofre for hackere hvert år, og mere end 2200 cyberangreb finder sted hver dag. Med en så alarmerende hastighed af cyberkriminalitet bliver det en prioritet at bruge bedste praksis til at beskytte mod hackere. Et af de vigtigste aspekter ved enhver konto er dens adgangskode.
Hvis en hacker kompromitterer din adgangskode, kan de få adgang til dine personlige oplysninger og endda din bankkonto i løbet af få minutter. Selvom dette lyder skræmmende, kan du lære, hvordan du sikrer dine adgangskoder ved hjælp af bedste praksis ved at bygge dit eget Python-program for at kontrollere dets styrke.
Forskellige regler for indstilling af stærke adgangskoder
Nogle stærke adgangskoderegler, du måske overvejer at implementere, er:
- Adgangskoden skal være på mindst 12 tegn. Jo længere adgangskoden er, jo mindre chance er der for, at et brute force-angreb kompromitterer det.
- Adgangskoden skal indeholde en kombination af små bogstaver, store bogstaver, tal og specialtegn.
- Undgå at gentage tegn i adgangskoden.
- Det bør ikke indeholde personlige oplysninger som navne, telefonnumre eller andet, som nogen nemt kan gætte.
- Det burde ikke være et almindeligt ordbogsord, selvom du kan bruge ord i længere adgangskodesætninger.
- Adgangskoden bør ikke være den samme for flere konti. Du kan opsætte en adgangskodehåndtering at autofylde forskellige adgangskoder til forskellige websteder uden at huske hver enkelt af dem.
Der er forskellige måder at oprette en ubrydelig adgangskode, som du kan huske. Nogle af dem bruger børnerim, citater fra film, branchesprog og meget mere.
Sådan tjekker du din adgangskodestyrke ved hjælp af Python
Du kan bygge et program til at teste adgangskodestyrken ved at kontrollere ovenstående egenskaber. Til denne build skal du bruge to moduler: snor og samlinger.
Du kan også bruge getpass modul for at skjule en adgangskode, når brugeren indtaster den. Dette hjælper med at beskytte din adgangskode, når du skal indtaste den offentligt. For at installere getpass i dit lokale miljø skal du åbne en terminal og skrive:
pip installere getpass4
Du kan bruge klassen String til at kontrollere, om et tegn er et bogstav, ciffer eller symbol. Du kan bruge samlinger til at kontrollere, om der er tegn i adgangskoden, der gentager sig.
Brug nøgleordet def til at definere en funktion med navn check_password_styrke() og send den adgangskode, du får som parameter, til den.
Initialiser seks variable: lavere_alfatal, øvre_alfatal, antal_antal, special_char_count, længde, almindelige til nul. Disse vil kontrollere tilstedeværelsen af små bogstaver, store bogstaver, cifre, specialtegn, længde, gentagelse af tegn i en adgangskode.
Send adgangskoden du får fra brugeren til liste() funktion til at konvertere den til en liste med tegn. Brug for-løkken til at gentage hvert tegn på listen. Brug if-else-sætningen til at kontrollere, om tegnet er et små bogstaver, store bogstaver, tal eller et specialtegn, og opdater tallet hhv.
Du kan antage, at alt andet fra alfabet eller tal er et specialtegn. For mere begrænsning kan du gemme specialtegn som en streng og kontrollere, om kodeordets tegn er til stede i den. Derudover giver nogle websteder dig mulighed for at bruge mellemrum i en adgangskode. Du kan indstille en anden variabel og øge den eller overveje den i selve optællingen af specialtegn.
importere snor
importere samlingerdefcheck_password_styrke(adgangskode):
lower_alpha_count = upper_alpha_count = number_count = special_char_count = længde = fælles = 0
til kul i liste(adgangskode):
hvischar i string.ascii_lowercase:
lower_alpha_count += 1
elif char i string.ascii_uppercase:
øvre_alfatal += 1
elif char i string.digits:
antal_antal += 1
andet:
special_char_count += 1
Du skal bruge en adgangskodeliste eller database for at kontrollere, om brugerens adgangskode er fælles. Du kan downloade en liste over en million mest populære adgangskoder fra SecLists' Common-Credential GitHub-depot.
Gem tekstfilen som almindelig_adgangskodeliste.txt. Brug with-sætningen til at udføre undtagelseshåndtering og åbne adgangskodefilen i læsetilstand. Brug Læs() funktion til at få indholdet til stede i filen og gemme det i en variabel med navnet indhold.
Hvis adgangskoden, som brugeren indtaster, ikke findes på listen med fælles adgangskoder, skal du øge værdien af den fælles variabel med én.
medåben("common_password_list.txt", 'r') somfil:
content = file.read()
hvis adgangskoden ikke er i indholdet:
almindelig += 1
For at kontrollere længden af adgangskoden skal du blot sende den til len() funktion og kontroller, om den er større end eller lig med tolv. Hvis det er tilfældet, skal du øge værdien af længdevariablen.
hvislen(adgangskode) >= 12:
længde += 1
For at kontrollere for gentagelse af tegn i adgangskoden, skal du bruge Counter-underklassen fra Samlinger. Tæller er en uordnet samling af nøgle- og værdipar, hvor nøglen er selve elementet, og værdien er antallet af element.
Brug listeforståelsesmetoden til at lave en liste over gentagne tegn fra den ordbog, du får ved hjælp af samlinger. Gentag ordbogen og tjek om antallet af tegn er større end én. Hvis antallet er større, skal du tilføje det til en liste og gemme det i gentaget.
countOfWords = samlinger. Tæller (adgangskode)
gentaget = [i for i i countOfWords hvis countOfWords[i] > 1]
Nu hvor du har værdierne for de individuelle karakteristika, initialiser en variabel med navnet styrke til nul. Som navnet antyder, vil du se denne variabel for at kontrollere adgangskodens styrke. Scoringssystemet er ud af syv, et point for hver medtagelse af en karakter og karakteristik af en stærk adgangskode.
Tjek, om antallet af små bogstaver, store bogstaver, tal, specialtegn er større end eller lig med én, og forøg styrken med én for hver tilstedeværelse. På samme måde skal du kontrollere, om længden og den fælles variabel er lig med én, og om længden af gentagne tegn er lig med nul. Hvis det er sandt, skal du øge værdien af styrkevariablen.
styrke = 0
hvis lavere_alfatal >= 1:
styrke += 1hvis øvre_alfatal >= 1:
styrke += 1hvis antal_antal >= 1:
styrke += 1hvis special_char_count >= 1:
styrke += 1hvis længde == 1:
styrke += 1hvis fælles == 1:
styrke += 1
hvislen(gentaget)== 0:
styrke += 1
Brug flerlinjestrengen (tre anførselstegn) til at vise flere tekstlinjer i en enkelt udskriftserklæring. Brug den bogstavelige Sring-interpolation eller f-strenge eller til at vise antallet af karakteristika. Det kan du opnå ved at skrive f i begyndelsen af strengen i print-sætningen og omslut variablerne i krøllede parenteser. Du bruger strenginterpolation, da indholdet i print-sætningen er en streng, men værdien af variablerne er et heltal.
Print(f"""Din adgangskode har:-
{lower_alpha_count} små bogstaver
{upper_alpha_count} store bogstaver
{number_count} cifre
{special_char_count} specialtegn
{length} længde
{common} almindelig
{repeated} gentaget
"Adgangskodescore: {styrke}/7""")
Brug endelig inputerklæringen til at modtage adgangskoden fra brugeren og videregive den til check_password_styrke fungere. Baseret på adgangskodens styrke vil programmet vise scoren sammen med antallet af egenskaber, der findes i adgangskoden.
adgangskode = input("Indtast adgangskoden:")
check_password_strength (adgangskode)
Output af Password Strength Checker
Når du indtaster en stærk adgangskode baseret på de nævnte egenskaber, viser Python-programmet styrken som 7/7:
Når du indtaster en svag og almindelig adgangskode, viser Python-programmet styrken som 1/7:
Adgangskoder og sikkerhed
Selvom du kan indstille den stærkeste adgangskode nogensinde, er der andre måder, hvorpå en hacker kan bryde ind i dit system. 95 % af cyberangrebene er et resultat af menneskelige fejl. En af de mest almindelige metoder, hackere bruger, er social engineering. Hackeren kan sende dig forfalskede links til sociale medier eller e-handelswebsteder, der ser legitime ud, men kompromitterer din adgangskode, hvis du bruger dem.
For at beskytte mod disse teknikker skal du sørge for kun at åbne links fra en pålidelig kilde og kun indtaste eller opbevare vigtige oplysninger sikkert.