Модулният криптен формат за bcrypt се състои от
$2$
,$2a$
или$2y$
идентифициране на алгоритъм и формат за хеширане- двуцифрена стойност, обозначаваща параметъра на разходите, последвана от
$
- 53 знака, кодирана от база 64 стойност (те използват азбуката
.
,/
,0
–9
,A
–Z
,a
–z
това е различно от стандартното кодиране Base 64 азбука), състояща се от:- 22 знака сол (на практика само 128 бита от 132 декодирани бита)
- 31 знака на криптиран изход (ефективно само 184 бита от 186 декодирани бита)
Така общата дължина е съответно 59 или 60 байта.
Тъй като използвате формат 2a, ще ви трябват 60 байта. И по този начин за MySQL ще препоръчам да използвате CHAR(60) BINARY
или BINARY(60)
(вижте _bin и двоичен Съпоставяния
за информация относно разликата).
CHAR
не е двоично безопасен и равенството не зависи само от стойността на байта, а от действителното съпоставяне; в най-лошия случай A
се третира като равно на a
. Вижте _bin
и binary
Колекции
за повече информация.