Czytelnicy tacy jak ty pomagają wspierać MUO. Kiedy dokonujesz zakupu za pomocą linków na naszej stronie, możemy otrzymać prowizję partnerską. Czytaj więcej.

Dane są kluczowym zasobem w dzisiejszym cyfrowym świecie. Każdego roku ponad osiem milionów ludzi pada ofiarą hakerów, a każdego dnia ma miejsce ponad 2200 cyberataków. Przy tak alarmującym wskaźniku cyberprzestępczości priorytetem staje się stosowanie najlepszych praktyk w celu ochrony przed hakerami. Jednym z najważniejszych aspektów każdego konta jest jego hasło.

Jeśli haker złamie Twoje hasło, może uzyskać dostęp do Twoich danych osobowych, a nawet konta bankowego, w ciągu kilku minut. Chociaż brzmi to przerażająco, możesz dowiedzieć się, jak zabezpieczyć swoje hasła, korzystając z najlepszych praktyk, budując własny program w Pythonie, aby sprawdzić jego siłę.

Różne zasady ustawiania silnych haseł

Niektóre silne zasady dotyczące haseł, które możesz rozważyć, to:

  1. Hasło powinno mieć co najmniej 12 znaków. Im dłuższe hasło, tym mniejsza szansa na złamanie go przez atak siłowy.
  2. instagram viewer
  3. Hasło powinno zawierać kombinację małych liter, wielkich liter, cyfr i znaków specjalnych.
  4. Unikaj powtarzających się znaków w haśle.
  5. Nie powinno zawierać danych osobowych, takich jak imiona i nazwiska, numery telefonów ani niczego, co ktoś może łatwo odgadnąć.
  6. Nie powinno to być popularne słowo ze słownika, chociaż można używać słów w dłuższych frazach haseł.
  7. Hasło nie powinno być takie samo dla wielu kont. Możesz skonfigurować menedżera haseł do automatycznego uzupełniania różnych haseł do różnych witryn bez zapamiętywania każdego z nich.

Istnieją różne sposoby stworzyć niezniszczalne hasło, które możesz zapamiętać. Niektóre z nich używają rymowanek, cytatów z filmów, żargonu branżowego i nie tylko.

Jak sprawdzić siłę hasła za pomocą Pythona

Możesz zbudować program do testowania siły hasła, sprawdzając powyższe cechy. Do tej kompilacji potrzebne będą dwa moduły: strunowy I kolekcje.

Możesz także skorzystać z tzw przejść dalej moduł do ukrywania hasła podczas wprowadzania go przez użytkownika. Pomaga to chronić hasło, gdy trzeba je wpisać publicznie. Aby zainstalować getpass w swoim lokalnym środowisku, otwórz terminal i wpisz:

pypeć zainstalować zdobądź przepustkę4

Możesz użyć klasy String, aby sprawdzić, czy znak jest literą, cyfrą lub symbolem. Możesz skorzystać z kolekcji, aby sprawdzić, czy w haśle występują znaki, które się powtarzają.

Użyj słowa kluczowego def, aby zdefiniować funkcję o nazwie check_password_strength() i podaj hasło, które otrzymasz jako parametr do niego.

Zainicjuj sześć zmiennych: niższa_liczba_alfa, górna_liczba_alfa, liczba_liczba, specjalna_liczba_znaków, długość, wspólny do zera. Sprawdzą one obecność małych liter, wielkich liter, cyfr, znaków specjalnych, długości, powtórzeń znaków w haśle.

Przekaż hasło otrzymane od użytkownika do lista() funkcję, aby przekonwertować ją na listę znaków. Używając pętli for, wykonaj iterację po każdym znaku z listy. Użyj instrukcji if-else, aby sprawdzić, czy znak jest małą literą, dużą literą, cyfrą lub znakiem specjalnym i odpowiednio zaktualizuj liczbę.

Możesz założyć, że cokolwiek innego niż alfabet lub liczba jest znakiem specjalnym. Aby uzyskać więcej ograniczeń, możesz przechowywać znaki specjalne jako ciąg i sprawdzać, czy występuje w nim znak hasła. Ponadto niektóre witryny umożliwiają stosowanie białych znaków w haśle. Możesz ustawić inną zmienną i zwiększyć ją lub uwzględnić w samej liczbie znaków specjalnych.

import strunowy
import kolekcje

poksprawdź_siłę_hasła(hasło):
dolna_liczba_alfa = górna_liczba_alfa = liczba_liczba = specjalna_liczba_znaków = długość = wspólna = 0

Do znak w lista(hasło):
Jeślizwęglać w string.ascii_lowercase:
dolna_liczba_alfa += 1
Elif zwęglać w string.ascii_uppercase:
górna_liczba_alfa += 1
Elif zwęglać w ciągu.cyfry:
liczba_liczba += 1
w przeciwnym razie:
specjalna_liczba_znaków += 1

Będziesz potrzebować listy haseł lub bazy danych, aby sprawdzić, czy hasło użytkownika jest wspólne. Możesz pobrać listę miliona najpopularniejszych haseł z Repozytorium Common Credential GitHub firmy SecLists.

Zapisz plik tekstowy jako lista_wspólnych_hasł.txt. Użyj instrukcji with, aby wykonać obsługę wyjątków i otworzyć plik haseł w trybie do odczytu. Użyj Czytać() funkcja, aby pobrać zawartość obecną w pliku i zapisać ją w zmiennej o nazwie content.

Jeśli hasła wprowadzonego przez użytkownika nie ma na liście wspólnych haseł, zwiększ wartość wspólnej zmiennej o jeden.

zotwarty(„lista_wspólnych_hasł.txt”, 'R') Jakplik:
zawartość = plik.odczyt()

jeśli hasła nie ma w treści:
wspólne += 1

Aby sprawdzić długość hasła, po prostu przekaż je do len() funkcję i sprawdź, czy jest większa lub równa dwunastu. Jeśli tak, zwiększ wartość zmiennej długości.

JeśliLen(hasło) >= 12:
długość += 1

Aby sprawdzić powtarzalność znaków w haśle, użyj podklasy Counter z Collections. Licznik to nieuporządkowana kolekcja par klucz-wartość, gdzie kluczem jest sam element, a wartością liczba elementów.

Użyj metody rozumienia listy, aby utworzyć listę powtarzających się znaków ze słownika, który otrzymujesz za pomocą kolekcji. Przejrzyj słownik i sprawdź, czy liczba znaków jest większa niż jeden. Jeśli liczba jest większa, dołącz ją do listy i zapisz w powtórzeniu.

 countOfWords = kolekcje. Licznik (hasło)
powtórzone = [i dla i w liczbie słów, jeśli liczba słów [i] > 1]

Teraz, gdy masz już wartości poszczególnych cech, zainicjuj zmienną o nazwie siła na zero. Jak sama nazwa wskazuje, tę zmienną zobaczysz, aby sprawdzić siłę hasła. System punktacji wynosi siedem, jeden punkt za każde włączenie znaku i cechy silnego hasła.

Sprawdź, czy liczba małych liter alfabetu, wielkich liter, cyfr, znaków specjalnych jest większa lub równa jeden i zwiększ siłę o jeden dla każdej obecności. Podobnie sprawdź, czy długość i zmienna wspólna są równe jeden i czy długość powtarzanego znaku jest równa zeru. Jeśli to prawda, zwiększ wartość zmiennej siły.

 siła = 0

jeśli dolna_liczba_alfa >= 1:
siła += 1

jeśli górna_liczba_alfa >= 1:
siła += 1

jeśli liczba_liczba >= 1:
siła += 1

jeśli special_char_count >= 1:
siła += 1

jeśli długość == 1:
siła += 1

jeśli wspólny == 1:
siła += 1

JeśliLen(powtarzający się)== 0:
siła += 1

Użyj ciągu wielowierszowego (trzy cudzysłowy), aby wyświetlić wiele wierszy tekstu w pojedynczej instrukcji print. Użyj dosłownej interpolacji Sing lub f-stringów lub aby wyświetlić liczbę cech. Możesz to osiągnąć pisząc F na początku łańcucha w instrukcji print i umieść zmienne w nawiasach klamrowych. Używasz interpolacji łańcucha, ponieważ treść wewnątrz instrukcji print jest łańcuchem, ale wartością zmiennych jest liczba całkowita.

wydrukować(F""„Twoje hasło ma:- 
{lower_alpha_count} małych liter
{upper_alpha_count} wielkich liter
{number_count} cyfr
{special_char_count} znaków specjalnych
{długość} długość
{wspólny} wspólny
{powtórzony} powtórzony
„Wynik hasła: {siła}/7”"")

Na koniec użyj instrukcji input, aby otrzymać hasło od użytkownika i przekazać je do sprawdź_siłę_hasła funkcjonować. Na podstawie siły hasła program wyświetli ocenę wraz z liczbą cech obecnych w haśle.

hasło = wejście ("Podaj hasło: ")
check_password_strength (hasło)

Dane wyjściowe sprawdzania siły hasła

Po wprowadzeniu silnego hasła w oparciu o wymienione cechy, program w Pythonie wyświetla siłę 7/7:

Po wprowadzeniu słabego i popularnego hasła program w Pythonie wyświetla siłę jako 1/7:

Hasła i zabezpieczenia

Chociaż możesz ustawić najsilniejsze hasło, istnieją inne sposoby, w jakie haker może włamać się do Twojego systemu. 95% cyberataków jest wynikiem błędu ludzkiego. Jedną z najczęstszych metod stosowanych przez hakerów jest socjotechnika. Haker może wysyłać Ci fałszywe łącza do serwisów społecznościowych lub witryn handlu elektronicznego, które wyglądają na legalne, ale jeśli z nich skorzystasz, złamie Twoje hasło.

Aby chronić się przed tymi technikami, otwieraj tylko linki z zaufanego źródła i bezpiecznie wprowadzaj lub przechowuj ważne informacje.