§

Generator Bcrypt

§

Generează Hash Bcrypt

10 (1,024 rounds)

Bcrypt este principala schemă de hash pentru parole în dezvoltarea web americană de la debutul său în 1999 de către Provos și Mazières. NIST SP 800-63B recomandă hash-uri cu consum mare de memorie pentru stocarea parolelor, iar OWASP listează bcrypt ca opțiune preferată alături de Argon2id. Rails include bcrypt prin has_secure_password, Django îl suportă ca backend conectabil, iar dezvoltatorii Node.js folosesc bcryptjs. Factorul de cost controlează cât durează un singur hash — dublarea costului dublează munca. Majoritatea aplicațiilor se fixează pe cost 10 (1.024 de runde) ca bază, în timp ce sistemele financiare sau administrative merg adesea la 12 (4.096 de runde). Această unealtă rulează în întregime în browser folosind JavaScript, așa că parolele tale nu părăsesc niciodată mașina ta.

Ce este bcrypt?

Bcrypt este o funcție de hash pentru parole proiectată de Niels Provos și David Mazières, bazată pe cifrul Blowfish. Spre deosebire de digestiile rapide precum MD5 sau SHA-256, bcrypt este în mod deliberat lent și costisitor din punct de vedere computațional — acest lucru face atacurile cu forță brută asupra hash-urilor de parole furate impracticabile. Bcrypt generează automat un salt aleatoriu per parolă, astfel încât parolele identice produc hash-uri diferite.

Cum funcționează bcrypt?

Algoritmul bcrypt rulează în întregime în browserul tău. Iată ce se întâmplă pas cu pas:

  1. Parola ta este codificată ca octeți UTF-8 și introdusă în programarea cheii bcrypt, care inițializează tabloul P de 4.184 de octeți și cutiile S ale cifrului Blowfish folosind parola și saltul.
  2. Un salt aleatoriu de 128 de biți este generat. Saltul este amestecat în programarea cheii, astfel încât fiecare salt unic produce un hash complet diferit chiar și pentru aceeași parolă.
  3. Programarea cheii este executată pentru 2^cost runde (de exemplu, 2^10 = 1.024 de iterații la cost 10). Fiecare iterație re-criptează intrările de salt și tablou P, încetinind calculul pe măsură ce costul crește.
  4. Ieșirea finală este un șir de 60 de caractere în formatul $2b$<cost>$<salt><hash>, unde costul este completat cu zero la stânga (de exemplu, 10), saltul are 22 de caractere Base64, iar hash-ul are 31 de caractere Base64.
  5. Pentru verificare, același algoritm rulează din nou cu parola candidată și saltul extras din hash-ul stocat. Dacă hash-ul derivat corespunde celui stocat, parola este corectă.

Ce factor de cost ar trebui să folosesc?

Factorul de cost este logaritmul numărului de iterații — cost 10 înseamnă 2^10 = 1.024 de runde, cost 12 înseamnă 4.096 de runde. Alege în funcție de nevoile tale de securitate și hardware:

  • Cost 4-6 (16-64 de runde) — doar pentru dezvoltare și testare. Prea rapid pentru producție; oferă protecție minimă.
  • Cost 8 (256 de runde) — minimul absolut pentru aplicații necritice. Aproximativ 6 ms pe hardware modern.
  • Cost 10 (1.024 de runde) — valoarea de bază recomandată actual. Durează aproximativ 25 ms. Bun pentru majoritatea aplicațiilor web.
  • Cost 12 (4.096 de runde) — recomandat pentru portaluri administrative, sisteme financiare și aplicații de înaltă securitate. Durează aproximativ 100 ms.
  • Cost 14 (16.384 de runde) — securitate ridicată. Durează aproximativ 400 ms. Folosește pentru parole principale, chei de criptare sau oricând latența de autentificare este acceptabilă.

De ce să folosești acest generator bcrypt?

  • Confidențialitatea ta este protejată — fiecare parolă este hash-uită local în browser, iar nicio dată nu părăsește dispozitivul tău.
  • Ai ambele moduri una lângă alta: generează hash-uri noi sau verifică-le pe cele existente fără a schimba paginile.
  • Factorul de cost poate fi ajustat de la 4 (rapid) la 15 (foarte lent), astfel încât să poți potrivi nevoile de securitate ale aplicației tale.
  • Hash-urile folosesc formatul standard $2b$ care funcționează cu fiecare limbaj și framework major.

Care sunt aplicațiile comune ale bcrypt?

Bcrypt este utilizat pe scară largă pentru stocarea și verificarea parolelor în industrie:

  • Autentificare în aplicații web — stocarea hash-urilor parolelor utilizatorilor în baze de date, astfel încât parolele în text clar să nu fie niciodată salvate.
  • Hash pentru chei API — hash-uirea secretelor API înainte de stocare, astfel încât o spargere a bazei de date să nu divulge credentiale valide.
  • Audit de migrare — verificarea că hash-urile de parole moștenite de la un sistem mai vechi încă autentifică utilizatorii după actualizarea stratului de autentificare.

Cum arată un hash bcrypt?

Hash-uirea parolei hunter2 cu factorul de cost 10 produce un șir precum $2b$10$N9qo8uLOickgx2ZMRZoMyeIjZAgcfl7p92ldGxad68LJZdL17lhWy. Formatul se descompune astfel: $2b$ (versiunea algoritmului), 10 (factorul de cost), $, apoi 22 de caractere de salt și 31 de caractere de hash, toate codificate Base64. Fiecare execuție cu aceeași parolă produce un hash diferit din cauza saltului aleatoriu.

Acest generator bcrypt rulează în întregime în browserul tău folosind o implementare pur JavaScript. Hash-uiește parolele înainte de a le stoca, verifică hash-urile existente și ajustează factorul de cost pentru a corespunde cerințelor tale de securitate — totul fără a trimite un singur octet la un server.