Det modulære kryptformat for bcrypt består af
$2$,$2a$eller$2y$identificere hashing-algoritmen og -formatet- en tocifret værdi, der angiver omkostningsparameteren, efterfulgt af
$ - en 53 tegn lang base-64-kodet værdi (de bruger alfabetet
.,/,0–9,A–Z,a–zder er anderledes end standard Base 64-kodning alfabet) bestående af:- 22 tegn salt (effektivt kun 128 bit af de 132 afkodede bit)
- 31 tegn krypteret output (effektivt kun 184 bit af de 186 afkodede bit)
Den samlede længde er således henholdsvis 59 eller 60 bytes.
Når du bruger 2a-formatet, skal du bruge 60 bytes. Og derfor til MySQL vil jeg anbefale at bruge BINÆR(60)
CHAR er ikke binært sikkert, og lighed afhænger ikke udelukkende af byteværdien, men af den faktiske sammenstilling; i værste fald A behandles som lig med a . Se _bin og binær Samlinger
for mere information.