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–zyang 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.