Bcrypt Parola Generator
Generați hash-uri sigure pentru parole bcrypt instantaneu în browser. Alegeți factorul de cost și parolele hash la nivelul clientului - complet privat și gratuit.
Generați hash-uri sigure pentru parole bcrypt instantaneu în browser. Alegeți factorul de cost și parolele hash la nivelul clientului - complet privat și gratuit.
bcrypt este o funcție de hashing a parolei concepută de Niels Provos și David Mazières în 1999, derivată din cifrul Blowfish. Spre deosebire de funcțiile hash de uz general, cum ar fi SHA-256, bcrypt este în mod deliberat lent - și configurabil lent, printr-un parametru de cost - care este exact proprietatea de care are nevoie un hash de parole. O funcție hash mai rapidă permite atacatorilor să forțeze mai mulți candidați pe secundă; unul mai lent le limitează.
bcrypt încorporează, de asemenea, salt per parolă automat, eliminând o întreagă clasă de atacuri bazate pe tabele curcubeu precalculate. Parametrul de sare și de cost sunt stocați ca parte a ieșirii bcrypt, astfel încât verificarea necesită doar hash-ul stocat și parola candidatului - fără management separat de sare. Această combinație de lentoare, sare și format autonom a făcut din bcrypt hash-ul implicit al parolei timp de două decenii și o alegere puternică astăzi.
Există alternative moderne. Argon2 a câștigat competiția de hashing a parolelor din 2015 și oferă duritatea memoriei, pe lângă duritatea timpului. scrypt oferă proprietăți similare. Pentru modele noi, Argon2id este alegerea recomandată. bcrypt rămâne acceptabil și implementat pe scară largă, în special în mediile în care Argon2 nu este disponibil.
Stocarea parolelor ca text simplu este o malpraxis. Stocarea acestora cu un hash rapid precum SHA-256 este abia mai bine - GPU-urile moderne calculează miliarde de hash-uri SHA-256 pe secundă, făcând atacurile cu forță brută împotriva oricărei parole comune fezabile în câteva ore. încetineala deliberată a bcrypt schimbă economia: la un factor de cost 12, un atacator cheltuiește aproximativ 250 ms per parolă candidată, făcând forța brută nepractică pentru orice parolă netrivială.
Saltul automat per-parolă de la bcrypt învinge și atacurile de tip curcubeu. Doi utilizatori cu aceeași parolă produc hash-uri bcrypt diferite, deoarece sărurile lor diferă. Compromisarea bazei de date de parole nu permite atacatorului să identifice rapid parolele comune sau accesările din tabelul precalculat.
Tastați o parolă, alegeți costul, obțineți hash-ul.
bcrypt folosește faza de configurare a cheii a unui cifru Blowfish modificat, repetată de 2^ costuri. Factorul de cost este logaritmic - costul 12 este de două ori mai lent decât costul 11, de patru ori mai lent decât costul 10. Această scalare logaritmică permite administratorilor să mărească costul în timp pe măsură ce hardware-ul se îmbunătățește, fără a reproiecta sistemul.
Formatul de ieșire este $version$cost$saltAndHash, unde saltAndHash este codificat în bază 64 cu un alfabet personalizat. Versiunea este de obicei de 2 miliarde de dolari (varianta modernă cu bug-ul complet remediat) sau de 2 miliarde de dolari (specific PHP, echivalent). Sarea este de 16 octeți; hash-ul este de 24 de octeți; împreună, codifică la 53 de caractere custom-base64.
Lungimea maximă de intrare este de 72 de octeți (limită de lungime a cheii Blowfish). Parolele mai lungi sunt trunchiate în tăcere, ceea ce este o ciudatenie bcrypt de lungă durată. Cea mai bună practică este fie de a limita lungimea parolei la 72 de octeți, fie de a pre-hash cu SHA-256 pentru a normaliza lungimea înainte de bcrypt.