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–zche è 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.