Il formato crypt modulare per bcrypt è composto da
$2$
,$2a$
o$2y$
identificare l'algoritmo e formato di hashing- un valore a due cifre che denota il parametro di costo, seguito da
$
- un valore codificato in base 64 di 53 caratteri (usano l'alfabeto
.
,/
,0
–9
,A
–Z
,a
–z
che è diverso dalla codifica Base 64 standard alfabeto) composto da:- 22 caratteri di sale (effettivamente solo 128 bit dei 132 bit decodificati)
- 31 caratteri di output crittografato (effettivamente solo 184 bit dei 186 bit decodificati)
Quindi la lunghezza totale è rispettivamente di 59 o 60 byte.
Poiché utilizzi il formato 2a, avrai bisogno di 60 byte. E quindi per MySQL consiglierò di utilizzare il CHAR(60) BINARY
o BINARY(60)
(vedi Il _bin e binario Fascicolazioni
per informazioni sulla differenza).
CHAR
non è binario sicuro e l'uguaglianza non dipende solo dal valore del byte ma dalle regole di confronto effettive; nel peggiore dei casi A
è considerato uguale a a
. Vedi Il _bin
e binary
Fascicolazioni
per ulteriori informazioni.