Nu trebuie să păstrați niciodată o parolă în text simplu în timp ce confirmați un utilizator sau faceți ceva similar.
Întrucât multe persoane folosesc aceeași parolă, dacă un atacator descoperă o bază de date de parole necriptate, acestea pot fi utilizate cu ușurință împreună cu e-mailurile care se potrivesc pentru a intra în site-ul sau contul conectat și chiar pot fi folosite pentru a încerca să acceseze alte conturi.
Parolele sunt adesea indexate astăzi, atunci când este furnizată o parolă. Se recomandă hașarea cu sare și păstrarea sarii împreună cu parola hașată.
Sărarea ar putea părea ca unul dintre pașii unei rețete de hash browns, dar în criptografie, se referă la adăugarea de date aleatorii la intrarea unei funcții hash pentru a se asigura că hash-ul va oferi întotdeauna un rezultat unic chiar dacă intrările sunt identice.
Drept urmare, hash-ul distinctiv creat prin adăugarea de sare ne poate apăra de mai multe metode de atac, inclusiv atacurile pe tabelul de hash, înăbușind în același timp încercările offline de dicționar și forță brută.
Aici, cu ajutorul fragmentelor de cod, vom demonstra cum să folosiți „bcrypt” pentru a vă securiza parolele.
Deci, ce este „bcrypt”?
Bcrypt este o bibliotecă de hashing care acceptă mai multe limbi și oferă criptare specială a parolelor. Pentru a crește securitatea parolei dvs., aceasta produce automat caractere aleatorii suplimentare (sare) atunci când vă criptați șirul.
De asemenea, puteți alege să definiți câte caractere suplimentare doriți să adăugați la un șir primit.
Biblioteca bcrypt citește doar cod de octeți, nu șiruri brute. Prin urmare, înainte de a trimite un șir de parolă primit la bcrypt pentru criptare, trebuie mai întâi să îl codificați.
Criptarea și codificarea nu sunt aceleași lucruri. Se asigură doar că un șir poate fi citit de mașină înainte de a fi acoperit de o tehnică de criptare.
Utilizarea bcrypt pentru a cripta o parolă în Python
Python simplifică criptarea parolei bcrypt. Ne vom concentra pe a face acest lucru fără ajutorul unui cadru. Dar nu vă faceți griji, dacă înțelegeți cum să salvați intrările utilizatorilor și să le citiți din baza de date, procedura este aceeași în cadre.
Instalare
Trebuie doar să configurați un mediu virtual Python și apoi să utilizați un IDE precum PyCharm. Biblioteca trebuie apoi instalată mai întâi:
Criptarea parolei
Să vedem cum să folosiți bcrypt pentru a cripta un text după ce acesta a fost instalat:
Codul Python menționat mai sus execută și scoate un șir de octeți criptat. Dar de fiecare dată când rulați scriptul, rezultatul este diferit. Bcrypt folosește această metodă pentru a se asigura că fiecare utilizator are o parolă care este criptată în mod specific.
Asta, de altfel, este pentru criptarea parolei.
Compararea parolelor și confirmarea utilizând Bcrypt
Ce se întâmplă dacă doriți să salvați parola codificată și să verificați mai târziu dacă se potrivește cu parola trimisă de un utilizator pentru autentificare?
E simplu. Doar parola de autentificare trebuie comparată cu intrarea bazei de date (sau în memorie în acest caz).
Parola de autentificare trebuie de asemenea codificată înainte de a fi comparată cu cea din baza de date deoarece bcrypt poate citi doar șiruri de octeți. Practic, veți compara o intrare de autentificare codificată cu parola codificată hashing pe care o aveți în prezent în baza de date.
Să testăm acest lucru folosind intrări Python fictive:
La rularea codului menționat mai sus, vi se solicită o nouă parolă. Acesta este salvat în memorie de Python. În secțiunea de autentificare, veți introduce apoi aceeași parolă, care este privată pentru dvs.
Dacă parola este comparată cu cea care a fost criptată anterior și a salvat meciul, Python emite un mesaj de succes.
Dacă nu, mesajul de eroare este tipărit și apoi se adaugă propoziția else.
Ideea fundamentală este identică cu aceea de a înregistra și apoi de a furniza o parolă unei baze de date pentru autentificare.
Concluzie
Chiar dacă am folosit pur și simplu parole criptate pentru a arăta cum funcționează bcrypt în memoria scurtă simplă Python, aplicabilitatea sa reală constă în aplicațiile bazate pe utilizatori.
Cu toate acestea, acest articol demonstrează metodele esențiale de a vă organiza codul pentru a realiza acest lucru, chiar și în circumstanțe reale.
De exemplu, dacă utilizați Flask, puteți furniza câmpurile de înregistrare și autentificare prin formulare web separate în loc de intrări.
Desigur, în timp ce comparați parolele, veți citi dintr-o bază de date care conține parole criptate care sunt păstrate în lumea reală.
Jona Nitsch
Mulțumesc pentru această explicație simplă și simplă,
Acest lucru m-a ajutat foarte mult în proiectul meu actual.
Cred că este foarte bine ca exemplul de cod să fie limitat la minimum și să nu fie supraîncărcat ca atâtea alte explicații.
Cel mai bun în ceea ce priveşte