bcryptのモジュラー暗号化フォーマットは
で構成されています-
$ 2 $
、$ 2a $
または$2y $
ハッシュアルゴリズムとフォーマット を特定する - コストパラメータを示す2桁の値と、それに続く
$
- 53文字の長さのbase-64でエンコードされた値(アルファベットの
を使用します。
、/
、0
–9
、A
–z
、a
–z
これは、標準のBase64エンコーディング とは異なります。 アルファベット)からなる:- 22文字のソルト(事実上、デコードされた132ビットのうち128ビットのみ)
- 31文字の暗号化された出力(事実上、186のデコードされたビットのうち184ビットのみ)
したがって、全長はそれぞれ59バイトまたは60バイトです。
2a形式を使用する場合、60バイトが必要になります。したがって、MySQLの場合は、 CHAR(60)BINARY
またはBINARY(60)
( _binを参照してください。 およびバイナリ 照合
違いについては)
CHAR
バイナリセーフではなく、等式はバイト値だけに依存するのではなく、実際の照合に依存します。最悪の場合A
a
と等しいものとして扱われます 。 _bin
を参照してください。 およびbinary
照合
詳細については。