Lezers zoals jij steunen MUO. Wanneer u een aankoop doet via links op onze site, kunnen we een aangesloten commissie verdienen. Lees verder.

Gegevens zijn een essentieel bezit in de digitale wereld van vandaag. Jaarlijks worden meer dan acht miljoen mensen het slachtoffer van hackers en vinden er dagelijks meer dan 2200 cyberaanvallen plaats. Met zo'n alarmerende snelheid van cybercriminaliteit wordt het een prioriteit om best practices te gebruiken om je te beschermen tegen hackers. Een van de belangrijkste aspecten van elk account is het wachtwoord.

Als een hacker uw wachtwoord in gevaar brengt, kunnen ze binnen enkele minuten toegang krijgen tot uw persoonlijke gegevens en zelfs uw bankrekening. Hoewel dit eng klinkt, kun je leren hoe je je wachtwoorden kunt beveiligen met best practices door je eigen Python-programma te bouwen om de sterkte ervan te testen.

Verschillende regels voor het instellen van sterke wachtwoorden

Enkele regels voor sterke wachtwoorden die u zou kunnen overwegen, zijn:

  1. Het wachtwoord moet minimaal 12 tekens lang zijn. Hoe langer het wachtwoord, hoe kleiner de kans dat een brute force-aanval het in gevaar brengt.
  2. Het wachtwoord moet een combinatie van kleine letters, hoofdletters, cijfers en speciale tekens bevatten.
  3. Vermijd herhalende tekens in het wachtwoord.
  4. Het mag geen persoonlijke gegevens bevatten, zoals namen, telefoonnummers of iets dat iemand gemakkelijk kan raden.
  5. Het zou geen gewoon woordenboekwoord moeten zijn, hoewel u woorden in langere wachtwoordzinnen kunt gebruiken.
  6. Het wachtwoord mag niet hetzelfde zijn voor meerdere accounts. Jij kan stel een wachtwoordbeheerder in om automatisch verschillende wachtwoorden voor verschillende sites in te vullen zonder ze allemaal te onthouden.

Er zijn verschillende manieren om maak een onbreekbaar wachtwoord dat u kunt onthouden. Sommigen van hen gebruiken kinderliedjes, citaten uit films, branchetaal en meer.

Hoe u uw wachtwoordsterkte kunt controleren met behulp van Python

U kunt een programma bouwen om de wachtwoordsterkte te testen door de bovenstaande kenmerken te controleren. Voor deze build heb je twee modules nodig: snaar En collecties.

U kunt ook de Krijg een pas module om een ​​wachtwoord te verbergen terwijl de gebruiker het invoert. Dit helpt om uw wachtwoord te beschermen wanneer u het in het openbaar moet typen. Om getpass in uw lokale omgeving te installeren, opent u een terminal en typt u:

Pip installeren haalpass4

U kunt de klasse String gebruiken om te controleren of een teken een letter, cijfer of symbool is. U kunt verzamelingen gebruiken om te controleren of er tekens in het wachtwoord zijn die zich herhalen.

Gebruik het sleutelwoord def om een ​​functie met de naam te definiëren check_password_strength() en geef het wachtwoord door dat u als parameter zult verkrijgen.

Initialiseer zes variabelen: lagere_alpha_count, upper_alpha_count, aantal_telling, special_char_count, lengte, gewoon naar nul. Deze controleren de aanwezigheid van kleine letters, hoofdletters, cijfers, speciale tekens, lengte, herhaling van tekens in een wachtwoord.

Geef het wachtwoord dat u van de gebruiker krijgt door aan de lijst() functie om het om te zetten in een lijst met tekens. Gebruik de for-lus om elk teken van de lijst te herhalen. Gebruik de instructie if-else om te controleren of het teken een kleine letter, een hoofdletter, een cijfer of een speciaal teken is en werk de telling respectievelijk bij.

U kunt ervan uitgaan dat al het andere uit het alfabet of cijfer een speciaal teken is. Voor meer beperkingen kunt u speciale tekens opslaan als een tekenreeks en controleren of het teken van het wachtwoord erin aanwezig is. Bovendien kunt u op sommige websites spaties in een wachtwoord gebruiken. U kunt een andere variabele instellen en deze verhogen of meenemen in het aantal speciale tekens zelf.

importeren snaar
importeren collecties

defcheck_password_strength(wachtwoord):
lower_alpha_count = upper_alpha_count = number_count = special_char_count = length = common = 0

voor verkolen lijst(wachtwoord):
alschar in string.ascii_kleine letters:
lagere_alpha_count += 1
elif char in string.ascii_hoofdletters:
upper_alpha_count += 1
elif char in string.digits:
aantal_telling += 1
anders:
special_char_count += 1

U hebt een wachtwoordlijst of database nodig om te controleren of het wachtwoord van de gebruiker algemeen is. U kunt een lijst met een miljoen meest populaire wachtwoorden downloaden van SecLists' Common-Credential GitHub-repository.

Sla het tekstbestand op als common_password_list.txt. Gebruik de instructie with om uitzonderingen af ​​te handelen en het wachtwoordbestand in leesmodus te openen. Gebruik de lezen() functie om de inhoud in het bestand te krijgen en op te slaan in een variabele met de naam inhoud.

Als het wachtwoord dat de gebruiker invoert niet voorkomt in de lijst met gemeenschappelijke wachtwoorden, verhoogt u de waarde van de gemeenschappelijke variabele met één.

metopen("common_password_list.txt", 'R') alsbestand:
inhoud = bestand.lezen()

indien wachtwoord niet in de inhoud:
algemeen += 1

Om de lengte van het wachtwoord te controleren, geeft u het gewoon door aan de lenen() functie en controleer of deze groter is dan of gelijk is aan twaalf. Zo ja, verhoog dan de waarde van de lengtevariabele.

alslenen(wachtwoord) >= 12:
lengte += 1

Gebruik de Counter-subklasse van Collections om te controleren op herhaling van tekens in het wachtwoord. Teller is een ongeordende verzameling sleutel- en waardeparen waarbij de sleutel het element zelf is en de waarde het aantal elementen.

Gebruik de list comprehension-methode om een ​​lijst te maken met herhaalde tekens uit het woordenboek dat je krijgt met collecties. Herhaal het woordenboek en controleer of het aantal tekens groter is dan één. Als het aantal groter is, voegt u het toe aan een lijst en slaat u het op in herhaald.

 countOfWords = collecties. Teller (wachtwoord)
herhaald = [i voor i in aantalWoorden als aantalWoorden[i] > 1]

Nu je de waarden van de individuele kenmerken hebt, initialiseer je een variabele met de naam sterkte op nul. Zoals de naam al doet vermoeden, ziet u deze variabele om de sterkte van het wachtwoord te controleren. Het scoresysteem is op zeven, één punt voor elke opname van een personage en kenmerk van een sterk wachtwoord.

Controleer of het aantal kleine letters, hoofdletters, cijfers en speciale tekens groter is dan of gelijk is aan één en verhoog de sterkte met één voor elke aanwezigheid. Controleer op dezelfde manier of de lengte en de gemeenschappelijke variabele gelijk zijn aan één en of de lengte van herhaalde tekens gelijk is aan nul. Indien waar, verhoog dan de waarde van de variabele sterkte.

 sterkte = 0

als lagere_alpha_count >= 1:
sterkte += 1

als upper_alpha_count >= 1:
sterkte += 1

als aantal_telling >= 1:
sterkte += 1

als special_char_count >= 1:
sterkte += 1

als lengte == 1:
sterkte += 1

indien gemeenschappelijk == 1:
sterkte += 1

alslenen(herhaald)== 0:
sterkte += 1

Gebruik de string met meerdere regels (drie aanhalingstekens) om meerdere regels tekst weer te geven in een enkele printopdracht. Gebruik de letterlijke Sring-interpolatie of f-strings of om het aantal kenmerken weer te geven. Dit bereik je door te schrijven F aan het begin van de string in het print statement en plaats de variabelen tussen accolades. U gebruikt tekenreeksinterpolatie omdat de inhoud in het printstatement een tekenreeks is, maar de waarde van de variabelen een geheel getal is.

afdrukken(F"""Uw wachtwoord heeft:- 
{lower_alpha_count} kleine letters
{upper_alpha_count} hoofdletters
{number_count} cijfers
{special_char_count} speciale tekens
{lengte} lengte
{algemeen} algemeen
{herhaald} herhaald
"Wachtwoordscore: {sterkte}/7""")

Gebruik ten slotte de invoerinstructie om het wachtwoord van de gebruiker te ontvangen en door te geven aan de check_password_strength functie. Op basis van de sterkte van het wachtwoord geeft het programma de score weer samen met het aantal kenmerken dat in het wachtwoord aanwezig is.

wachtwoord = invoer("Voer het wachtwoord in: ")
check_password_strength (wachtwoord)

Uitvoer van wachtwoordsterktecontrole

Bij het invoeren van een sterk wachtwoord op basis van de genoemde kenmerken, geeft het Python-programma de sterkte weer als 7/7:

Bij het invoeren van een zwak en algemeen wachtwoord, geeft het Python-programma de sterkte weer als 1/7:

Wachtwoorden en beveiliging

Hoewel u het sterkste wachtwoord ooit kunt instellen, zijn er andere manieren waarop een hacker uw systeem kan binnendringen. 95% van de cyberaanvallen is het gevolg van menselijke fouten. Een van de meest gebruikte methoden die hackers gebruiken, is social engineering. De hacker kan u valse links naar sociale media of e-commercewebsites sturen die er legitiem uitzien, maar uw wachtwoord in gevaar brengen als u ze gebruikt.

Om u tegen deze technieken te beschermen, moet u ervoor zorgen dat u alleen links van een vertrouwde bron opent en alleen belangrijke informatie veilig invoert of opslaat.