bcrypt: hash și verificare
Hash-ul bcrypt e făcut pentru parole: lent intenționat și cu sare proprie. Fă unul nou sau verifică o parolă pe unul existent.
Ce face
Fă un hash alege o sare nouă, aleatorie, și calculează hash-ul bcrypt al parolei. Rezultatul are 60 de caractere și conține tot ce trebuie la verificare: versiunea ($2b$), costul și sarea. De aceea aceeași parolă dă de fiecare dată alt hash, iar Altă sare îți arată asta.
Verifică ia parola și un hash existent și spune dacă se potrivesc. Merg toate prefixele obișnuite: $2a$, $2b$ și $2y$, cel scris de Apache în .htpasswd.
Costul
Costul spune de câte ori se repetă partea grea a calculului: 2 la puterea cost. Fiecare pas în plus dublează timpul, deci și timpul de ghicire prin încercări. Vezi în dreptul rezultatului cât a durat pe dispozitivul tău; aici costul merge de la 4 la 15.
bcrypt ia în seamă doar primii 72 de octeți ai parolei (o literă cu diacritic ocupă doi); dacă parola e mai lungă, primești un avertisment.
Parola rămâne la tine
Hash-ul se calculează în browserul tău, cu biblioteca bcryptjs: parola nu e trimisă nicăieri și nu e păstrată.
Întrebări frecvente
Pot afla parola din hash?
Nu direct: bcrypt merge într-un singur sens. Se poate doar încerca parolă după parolă, iar costul face fiecare încercare lentă.
Am nevoie de un rând pentru .htpasswd
Folosește generatorul .htpasswd: scrie direct rândul utilizator:hash, cu bcrypt sau cu celelalte patru formate pe care le scrie: SHA-512, SHA-256, MD5 apr1 și SHA-1.