Modulární formát crypt pro bcrypt se skládá z
$2$
,$2a$
nebo$2y$
identifikace hašovacího algoritmu a formátu- dvoumístná hodnota označující parametr cost, za kterou následuje
$
- hodnota 53 znaků dlouhá base-64 (používají abecedu
.
,/
,0
–9
,A
–Z
,a
–z
které se liší od standardního kódování Base 64 abeceda) sestávající z:- 22 znaků soli (ve skutečnosti pouze 128 bitů ze 132 dekódovaných bitů)
- 31 znaků šifrovaného výstupu (ve skutečnosti pouze 184 bitů ze 186 dekódovaných bitů)
Celková délka je tedy 59 nebo 60 bajtů.
Při použití formátu 2a budete potřebovat 60 bajtů. A proto pro MySQL doporučuji použít CHAR(60) BINARY
nebo BINARY(60)
(viz _bin a binární Porovnání
pro informaci o rozdílu).
CHAR
není binárně bezpečný a rovnost nezávisí pouze na hodnotě bytu, ale na skutečném řazení; v nejhorším případě A
je považováno za rovné a
. Viz _bin
a binary
Porovnání
pro více informací.