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.
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.
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
- Programare
- Piton
- Programare
- Securitate
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.
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