Format crypt modular untuk bcrypt terdiri dari
$2$
,$2a$
atau$2y$
mengidentifikasi algoritme dan format hashing- nilai dua digit yang menunjukkan parameter biaya, diikuti dengan
$
- nilai yang disandikan dengan basis 64 karakter sepanjang 53 karakter (mereka menggunakan alfabet
.
,/
,0
–9
,A
–Z
,a
–z
yang berbeda dengan Encoding Base 64 standar alfabet) terdiri dari:- 22 karakter garam (efektif hanya 128 bit dari 132 bit yang didekodekan)
- 31 karakter keluaran terenkripsi (secara efektif hanya 184 bit dari 186 bit yang didekodekan)
Jadi panjang totalnya masing-masing adalah 59 atau 60 byte.
Saat Anda menggunakan format 2a, Anda memerlukan 60 byte. Dan dengan demikian untuk MySQL saya akan merekomendasikan untuk menggunakan CHAR(60) BINARY
atau BINARY(60)
(lihat _bin dan biner Koleksi
untuk informasi tentang perbedaannya).
CHAR
tidak biner aman dan kesetaraan tidak hanya bergantung pada nilai byte tetapi pada susunan yang sebenarnya; dalam kasus terburuk A
diperlakukan sama dengan a
. Lihat _bin
dan binary
Koleksi
untuk informasi lebih lanjut.