Čtenáři jako vy pomáhají podporovat MUO. Když provedete nákup pomocí odkazů na našich stránkách, můžeme získat provizi přidružené společnosti. Přečtěte si více.

Data jsou v dnešním digitálním světě životně důležité aktivum. Každoročně se stane obětí hackerů více než osm milionů lidí a každý den proběhne více než 2200 kybernetických útoků. S tak alarmující mírou kybernetické kriminality se stává prioritou používat osvědčené postupy k ochraně před hackery. Jedním z nejdůležitějších aspektů každého účtu je jeho heslo.

Pokud hacker prolomí vaše heslo, může získat přístup k vašim osobním údajům a dokonce i k vašemu bankovnímu účtu během několika minut. Ačkoli to zní děsivě, můžete se naučit, jak zabezpečit svá hesla pomocí osvědčených postupů, a to vytvořením vlastního programu Python, abyste ověřili jejich sílu.

Různá pravidla pro nastavení silných hesel

Některá pravidla pro silná hesla, která byste mohli zvážit implementovat, jsou:

  1. Heslo by mělo mít alespoň 12 znaků. Čím delší je heslo, tím menší je pravděpodobnost, že ho ohrozí útok hrubou silou.
  2. instagram viewer
  3. Heslo by mělo obsahovat kombinaci malých písmen, velkých písmen, číslic a speciálních znaků.
  4. Vyhněte se opakování znaků v hesle.
  5. Neměl by obsahovat osobní údaje, jako jsou jména, telefonní čísla nebo cokoli, co může někdo snadno uhodnout.
  6. Nemělo by to být běžné slovo ve slovníku, i když můžete použít slova v delších heslech.
  7. Heslo by nemělo být stejné pro více účtů. Můžeš nastavit správce hesel k automatickému vyplňování různých hesel pro různé stránky, aniž byste si pamatovali každé z nich.

Existují různé způsoby, jak vytvořte si neprolomitelné heslo, které si zapamatujete. Některé z nich používají říkanky, citáty z filmů, žargonu průmyslu a další.

Jak zkontrolovat sílu hesla pomocí Pythonu

Můžete sestavit program pro testování síly hesla kontrolou výše uvedených charakteristik. Pro toto sestavení budete potřebovat dva moduly: tětiva a sbírky.

Můžete také použít getpass modul pro skrytí hesla, když jej uživatel zadává. To pomáhá chránit vaše heslo, když je musíte zadat na veřejnosti. Chcete-li nainstalovat getpass ve vašem místním prostředí, otevřete terminál a zadejte:

pip Nainstalujte getpass4

Třídu String můžete použít ke kontrole, zda je znakem písmeno, číslice nebo symbol. Pomocí kolekcí můžete zkontrolovat, zda se v hesle vyskytují znaky, které se opakují.

Pomocí klíčového slova def definujte funkci pojmenovanou check_password_strength() a předejte mu heslo, které získáte jako parametr.

Inicializujte šest proměnných: nižší_počet_alfa, horní_počet_alfa, počet_číslo, special_char_count, length, běžný na nulu. Ty zkontrolují přítomnost malé abecedy, velké abecedy, číslic, speciálních znaků, délky, opakování znaků v hesle.

Předejte heslo, které získáte od uživatele seznam() funkci převést na seznam znaků. Pomocí cyklu for iterujte každý znak v seznamu. Pomocí příkazu if-else zkontrolujte, zda je znakem malá abeceda, velká abeceda, číslo nebo speciální znak, a aktualizujte počet.

Můžete předpokládat, že cokoli jiného z abecedy nebo čísla je speciální znak. Pro větší omezení můžete uložit speciální znaky jako řetězec a zkontrolovat, zda je v něm přítomen znak hesla. Některé webové stránky navíc umožňují používat v hesle mezery. Můžete nastavit jinou proměnnou a zvýšit ji nebo ji zohlednit v samotném počtu speciálních znaků.

import tětiva
import sbírky

defkontrola_síla_hesla(Heslo):
Lower_alpha_count = upper_alpha_count = number_count = special_char_count = length = common = 0

pro char in seznam(Heslo):
-lichar v string.ascii_lowercase:
nižší počet_alfa += 1
elif char v string.ascii_uppercase:
horní_počet_alfa += 1
elif char v řetězci.číslice:
počet_číslo += 1
jiný:
special_char_count += 1

Ke kontrole, zda je heslo uživatele běžné, budete potřebovat seznam hesel nebo databázi. Můžete si stáhnout seznam jednoho milionu nejoblíbenějších hesel z Common-Credential GitHub úložiště SecLists.

Uložte textový soubor jako common_password_list.txt. Použijte příkaz with k provedení zpracování výjimek a otevření souboru s hesly v režimu čtení. Použijte číst() funkce k získání obsahu přítomného v souboru a jeho uložení do proměnné s názvem content.

Pokud heslo, které uživatel zadá, není přítomno v seznamu společných hesel, zvyšte hodnotu společné proměnné o jednu.

sOTEVŘENO("common_password_list.txt", 'r') tak jakosoubor:
content = file.read()

pokud heslo není v obsahu:
běžné += 1

Chcete-li zkontrolovat délku hesla, jednoduše jej předejte společnosti délka() a zkontrolujte, zda je větší nebo rovno dvanácti. Pokud ano, zvyšte hodnotu proměnné délky.

-lilen(Heslo) >= 12:
délka += 1

Chcete-li zkontrolovat opakování znaků v hesle, použijte podtřídu Counter z kolekce. Counter je neuspořádaná sbírka párů klíčů a hodnot, kde klíč je samotný prvek a hodnota je počet prvků.

Pomocí metody porozumění seznamu vytvořte seznam opakovaných znaků ze slovníku, který získáte pomocí kolekcí. Iterujte přes slovník a zkontrolujte, zda je počet znaků větší než jedna. Je-li počet větší, přidejte jej do seznamu a uložte jej v opakování.

 countOfWords = sbírky. Počítadlo (heslo)
opakované = [i pro i v počtu slov, pokud počet slov[i] > 1]

Nyní, když máte hodnoty jednotlivých charakteristik, inicializujte proměnnou s názvem síla na nulu. Jak název napovídá, zobrazí se tato proměnná pro kontrolu síly hesla. Bodovací systém je ze sedmi, jeden bod za každé zařazení znaku a charakteristiku silného hesla.

Zkontrolujte, zda je počet malých písmen, velkých písmen, čísel a speciálních znaků větší nebo roven jedné a zvyšte sílu o jednu pro každou přítomnost. Podobně zkontrolujte, zda je délka a společná proměnná rovna jedné a délka opakovaného znaku nula. Pokud je pravda, zvyšte hodnotu proměnné síly.

 síla = 0

pokud nižší_alfa_počet >= 1:
síla += 1

pokud horní_počet_alfa >= 1:
síla += 1

pokud počet_číslů >= 1:
síla += 1

pokud special_char_count >= 1:
síla += 1

if délka == 1:
síla += 1

pokud je společné == 1:
síla += 1

-lilen(opakovaně)== 0:
síla += 1

Víceřádkový řetězec (tři uvozovky) použijte k zobrazení více řádků textu v jednom tiskovém příkazu. Použijte doslovnou interpolaci Sring nebo f-řetězce nebo k zobrazení počtu charakteristik. Můžete toho dosáhnout psaním F na začátek řetězce v příkazu print a uzavřete proměnné do složených závorek. Používáte řetězcovou interpolaci, protože obsah uvnitř příkazu print je řetězec, ale hodnota proměnných je celé číslo.

tisk(F"""Vaše heslo má:- 
{lower_alpha_count} malých písmen
{upper_alpha_count} velkých písmen
{number_count} číslic
{special_char_count} speciálních znaků
{délka} délka
{common} běžné
{repeated} opakované
"Skóre hesla: {strength}/7""")

Nakonec použijte vstupní příkaz k získání hesla od uživatele a jeho předání kontrola_síla_hesla funkce. Na základě síly hesla program zobrazí skóre spolu s počtem vlastností přítomných v hesle.

heslo = vstup("Zadejte heslo:")
check_password_strength (heslo)

Výstup kontroly síly hesla

Po zadání silného hesla založeného na uvedených charakteristikách program Python zobrazí sílu jako 7/7:

Při zadání slabého a běžného hesla program Python zobrazí sílu jako 1/7:

Hesla a zabezpečení

I když můžete nastavit nejsilnější heslo vůbec, existují i ​​​​jiné způsoby, jak se hacker může dostat do vašeho systému. 95 % kybernetických útoků je výsledkem lidské chyby. Jednou z nejběžnějších metod, kterou hackeři používají, je sociální inženýrství. Hacker vám může poslat falešné odkazy na sociální média nebo webové stránky elektronického obchodu, které vypadají legitimně, ale pokud je použijete, prolomí vaše heslo.

Chcete-li se chránit před těmito technikami, ujistěte se, že otevíráte odkazy pouze z důvěryhodného zdroje a pouze zadáváte nebo ukládáte důležité informace bezpečně.