Criptarea parolelor maschează parolele utilizatorilor, astfel încât acestea devin greu de ghicit sau decodat. Este un pas esențial în dezvoltarea software-ului securizat pentru utilizatori. Indiferent dacă construiți unul cu Flask sau cu un alt cadru Python ușor, nu puteți ignora acel pas. Acolo intervine bcrypt.

Vă vom arăta cum să utilizați bcrypt pentru a vă hash parola în Python.

Cum funcționează bcrypt

Bcrypt este o bibliotecă de hashing independentă de limbă care oferă criptare unică a parolei. În timp ce criptați șirul dvs., acesta generează caractere aleatoare suplimentare (sare) în mod implicit pentru a spori securitatea parolei dvs.

Opțional, puteți specifica și numărul de caractere suplimentare pe care doriți să le adăugați la un șir primit.

Biblioteca Thebcrypt nu citește șiruri de caractere brute — numai cod de octeți. Deci, pentru a începe, mai întâi veți codifica un șir de parolă de intrare înainte de a-l trece la bcrypt pentru criptare.

Codificarea nu este același lucru cu criptarea. Se asigură doar că un șir devine citibil de mașină înainte ca un algoritm de criptare să îl poată masca.

instagram viewer

Criptarea unei parole în Python cu bcrypt

Criptarea parolei bcrypt este ușoară cu Python. Ne vom concentra pe cum să facem acest lucru fără a folosi un cadru. Dar nu vă faceți griji, urmează același proces în cadre odată ce știți cum să stocați intrările utilizatorilor și să le citiți din baza de date.

Instalați și configurați bcrypt

Dacă nu ai făcut-o deja, activați un mediu virtual Python în rădăcina proiectului dvs. Apoi instalați bcrypt folosind pip:

pip install bcrpyt

Începeți să criptați parolele

Odată instalat, să vedem cum să criptăm un șir folosind bcrypt:

# Importă bcrypt:
import bcrypt
parola = "mypasswordstring"
# Codificați parola într-un cod utf-8 octeți care poate fi citit:
parola = parola.encode('utf-8')
# Hash parola codificată și generează o sare:
hashedPassword = bcrypt.hashpw (parolă, bcrypt.gensalt())
imprimare (parolă hashed)

Cand tu rulați codul Python mai sus, tipărește un șir de octeți criptat. Ieșirea, totuși, se modifică de fiecare dată când executați scriptul. Acesta este modul în care bcrypt asigură că fiecare utilizator are o parolă criptată unic.

Apropo, asta e pentru criptarea parolei.

Cum să compari și să confirmi parolele cu bcrypt

Ce se întâmplă dacă doriți să stocați parola codificată și să confirmați mai târziu că se potrivește cu parola furnizată de utilizator în timpul autentificării?

Asta e ușor. Trebuie doar să comparați parola de autentificare cu cea stocată în baza de date (sau în memorie în acest caz).

Și deoarece bcrypt citește doar șiruri de octeți, va trebui, de asemenea, să codificați parola de autentificare înainte de a o compara cu cea din baza de date. În esență, veți verifica încrucișat o intrare de autentificare codificată cu parola hashing codificată deja stocată în baza de date.

Folosind intrări false Python, să vedem cum funcționează acest lucru în practică:

import bcrypt
#stochează-ți parola:
parola = str (input("introduce parola: "))
# Codificați parola stocată:
parola = parola.encode('utf-8')
# Criptați parola stocată:
hashed = bcrypt.hashpw (parolă, bcrypt.gensalt (10))
# Creați un câmp de introducere a parolei de autentificare pentru a verifica dacă un utilizator introduce parola corectă:
verifica = str (input("verifica parola: "))
# Codificați și parola de autentificare:
verifica = check.encode('utf-8')
# Utilizați condiții pentru a compara parola de autentificare cu cea stocată:
dacă bcrypt.checkpw (verificare, hashing):
print("autentificare succes")
altceva:
print("parola incorecta")

Codul de mai sus vă cere să introduceți o nouă parolă când o executați. Python stochează acest lucru în memorie. Veți furniza apoi aceeași parolă (cunoscută doar de dvs.) în câmpul de autentificare.

Python imprimă un mesaj de succes dacă parola comparată se potrivește cu cea criptată stocată anterior. În caz contrar, emite mesajul eșuat împachetat în altfel afirmație:

Întregul concept este același cu stocarea unei parole într-o bază de date în timpul înregistrării și furnizarea acesteia mai târziu în timpul autentificării.

Creșteți criptarea cu bcrypt

Deși am demonstrat cum funcționează bcrypt doar prin stocarea parolelor criptate în memoria scurtă simplă Python, utilizarea sa finală este în aplicațiile de bază de utilizatori din viața reală.

Cu toate acestea, acest tutorial arată modalitățile fundamentale de a vă structura codul pentru a realiza acest lucru, chiar și în scenarii din viața reală. De exemplu, dacă utilizați Flask, puteți înlocui intrările cu formulare web separate pentru a servi câmpurile de înregistrare și autentificare. Și, desigur, veți stoca parole criptate într-o bază de date reală și veți citi din ea atunci când comparați parolele.

12 termeni de bază de criptare pe care toată lumea ar trebui să-i cunoască până acum

Toată lumea vorbește despre criptare, dar te găsești pierdut sau confuz? Iată câțiva termeni cheie de criptare pe care trebuie să-i cunoașteți.

Citiți în continuare

AcțiuneTweetE-mail
Subiecte asemănătoare
  • Programare
  • Piton
  • Programare
  • Securitate
Despre autor
Idowu Omisola (116 articole publicate)

Idowu este pasionat de orice tehnologie inteligentă și productivitate. În timpul liber, se joacă cu codificarea și trece la tabla de șah când se plictisește, dar îi place și să se desprindă de rutină din când în când. Pasiunea lui pentru a le arăta oamenilor calea în jurul tehnologiei moderne îl motivează să scrie mai mult.

Mai multe de la Idowu Omisola

Aboneaza-te la newsletter-ul nostru

Alăturați-vă buletinului nostru informativ pentru sfaturi tehnice, recenzii, cărți electronice gratuite și oferte exclusive!

Click aici pentru a te abona