Het modulaire crypt-formaat voor bcrypt bestaat uit
$2$,$2a$of$2y$het identificeren van het hash-algoritme en formaat- een tweecijferige waarde die de kostenparameter aangeeft, gevolgd door
$ - een 53 tekens lange, met base-64 gecodeerde waarde (ze gebruiken het alfabet
.,/,0–9,A–Z,een–zdat is anders dan de standaard Base 64-codering alfabet) bestaande uit:- 22 karakters salt (in feite slechts 128 bits van de 132 gedecodeerde bits)
- 31 tekens gecodeerde uitvoer (in feite slechts 184 bits van de 186 gedecodeerde bits)
De totale lengte is dus respectievelijk 59 of 60 bytes.
Omdat je het 2a-formaat gebruikt, heb je 60 bytes nodig. En dus voor MySQL raad ik aan om de CHAR(60) BINAIR of BINAIR(60)
(zie De _bin en binair Verzamelingen
voor informatie over het verschil).
CHAR is niet binair veilig en gelijkheid hangt niet alleen af van de bytewaarde, maar van de feitelijke sortering; in het ergste geval A wordt behandeld als gelijk aan a . Zie De _bin en binair Verzamelingen
voor meer informatie.