Šifrovanie hesiel maskuje heslá používateľov, takže je ťažké ich uhádnuť alebo dekódovať. Je to nevyhnutný krok pri vývoji bezpečného softvéru pre používateľov. Či už ho vytvárate pomocou Flasku alebo iného ľahkého Python Frameworku, tento krok nemôžete ignorovať. Tu prichádza na rad bcrypt.

Ukážeme vám, ako použiť bcrypt na hashovanie hesla v Pythone.

Ako funguje bcrypt

Bcrypt je hašovacia knižnica agnostická pre jazyky, ktorá ponúka jedinečné šifrovanie hesiel. Počas šifrovania vášho reťazca štandardne generuje extra náhodné znaky (soľ), aby sa zvýšila bezpečnosť vášho hesla.

Voliteľne môžete zadať aj počet ďalších znakov, ktoré chcete pridať do prichádzajúceho reťazca.

Knižnica Thebcrypt nečíta nespracované reťazce – iba bajtový kód. Takže na začiatok najprv zakódujete prichádzajúci reťazec hesla a potom ho odošlete do bcrypt na zašifrovanie.

Kódovanie nie je to isté ako šifrovanie. Zabezpečuje iba to, že reťazec sa stane strojovo čitateľným skôr, ako ho šifrovací algoritmus dokáže zamaskovať.

instagram viewer

Šifrovanie hesla v Pythone pomocou bcrypt

bcrypt šifrovanie hesla je s Pythonom jednoduché. Zameriame sa na to, ako to urobiť bez použitia rámca. Ale žiadny strach, nasleduje rovnaký proces v rámcoch, keď viete, ako ukladať vstupy vašich používateľov a čítať ich z databázy.

Nainštalujte a nastavte bcrypt

Ak ste tak ešte neurobili, aktivovať virtuálne prostredie Pythonu v koreňovom adresári vášho projektu. Potom nainštalujte bcrypt pomocou pip:

pip install bcrpyt

Spustite šifrovanie hesiel

Po inštalácii sa pozrime, ako zašifrovať reťazec pomocou bcrypt:

# Importovať bcrypt:
importovať bcrypt
heslo = "mojeheslo"
# Zakódujte heslo do čitateľného utf-8 bajtového kódu:
heslo = password.encode('utf-8')
# Hashujte zakódované heslo a vygenerujte soľ:
hasshedPassword = bcrypt.hashpw (heslo, bcrypt.gensalt())
vytlačiť (hashedPassword)

Keď ty spustite kód Python vyššie vytlačí zašifrovaný bajtový reťazec. Výstup sa však zmení pri každom spustení skriptu. Takto bcrypt zabezpečuje, že každý používateľ má jedinečne zašifrované heslo.

To je mimochodom na šifrovanie hesla.

Ako porovnávať a potvrdzovať heslá pomocou bcrypt

Čo ak chcete uložiť hashované heslo a neskôr potvrdiť, že sa zhoduje s heslom poskytnutým používateľom počas overovania?

To je ľahké. Stačí porovnať autentifikačné heslo s heslom uloženým v databáze (alebo v tomto prípade v pamäti).

A keďže bcrypt číta iba bajtové reťazce, pred porovnaním s heslom v databáze budete musieť zakódovať aj autentifikačné heslo. V podstate skontrolujete zakódovaný autentizačný vstup so zakódovaným hashovaným heslom, ktoré je už uložené vo vašej databáze.

Pomocou fiktívnych vstupov Pythonu sa pozrime, ako to funguje v praxi:

importovať bcrypt
#uložte si heslo:
heslo = str (vstup("zadanie hesla: "))
# Zakódujte uložené heslo:
heslo = password.encode('utf-8')
# Zašifrujte uložené heslo:
hash = bcrypt.hashpw (heslo, bcrypt.gensalt (10))
# Vytvorte pole na zadanie overovacieho hesla, aby ste skontrolovali, či používateľ zadáva správne heslo:
check = str (input("skontrolovať heslo: "))
# Zakódujte aj overovacie heslo:
check = check.encode('utf-8')
# Použite podmienky na porovnanie overovacieho hesla s uloženým heslom:
if bcrypt.checkpw (kontrola, hash):
print ("prihlásenie úspešné")
inak:
print("nesprávne heslo")

Vyššie uvedený kód vás pri spustení požiada o zadanie nového hesla. Python to ukladá do pamäte. Potom zadáte rovnaké heslo (známe iba vám) v autentifikačnom poli.

Python vytlačí správu o úspechu, ak sa porovnávané heslo zhoduje s predtým uloženým zašifrovaným heslom. V opačnom prípade vypíše neúspešnú správu zabalenú do inak vyhlásenie:

Celý koncept je rovnaký ako uloženie hesla do databázy pri registrácii a jeho neskoršie poskytnutie pri autentifikácii.

Šifrovanie pomocou bcrypt

Aj keď sme len ukázali, ako bcrypt funguje, ukladaním zašifrovaných hesiel do obyčajnej krátkej pamäte Pythonu, jeho konečné využitie je v aplikáciách v reálnom živote.

Napriek tomu tento tutoriál ukazuje základné spôsoby, ako štruktúrovať váš kód, aby ste to dosiahli, dokonca aj v reálnych scenároch. Napríklad, ak používate Flask, môžete nahradiť vstupy samostatnými webovými formulármi, ktoré budú slúžiť pre polia registrácie a autentifikácie. A samozrejme, zašifrované heslá si uložíte do reálnej databázy a z nej budete čítať pri porovnávaní hesiel.

12 základných pojmov šifrovania, ktoré by teraz mal poznať každý

Každý hovorí o šifrovaní, ale ocitnete sa stratený alebo zmätený? Tu je niekoľko kľúčových pojmov šifrovania, ktoré potrebujete vedieť.

Prečítajte si ďalej

zdieľamTweetujteEmail
Súvisiace témy
  • Programovanie
  • Python
  • Programovanie
  • Bezpečnosť
O autorovi
Idowu Omisola (116 publikovaných článkov)

Idowu je nadšený z akejkoľvek inteligentnej technológie a produktivity. Vo voľnom čase sa hrá s kódovaním a keď sa nudí, prepne na šachovnicu, no tiež sa rád raz za čas odpúta od rutiny. Jeho vášeň ukázať ľuďom cestu okolo moderných technológií ho motivuje k ďalšiemu písaniu.

Viac od Idowu Omisola

prihlásiť sa ku odberu noviniek

Pripojte sa k nášmu bulletinu a získajte technické tipy, recenzie, bezplatné e-knihy a exkluzívne ponuky!

Kliknutím sem sa prihlásite na odber