参考記事: Bcrypt - Wikipedia
なるほど、確かにそこ意識したことなかったので一緒に見ていきましょうか。
とりあえず仕様を確認するためにWikipediaを確認。
途中ではUTF-8エンコードするみたいなワードもあって少々わかりづらいですね。
しかし、「説明」セクションに知りたい情報が記述されているようです。
bcryptによってハッシュ化された文字列は"$2a$"や"$2b$" (あるいは "$2y$")という接頭辞を持つ。
この接頭辞はハッシュ化する際に用いたアルゴリズムによって異なり、前述の接頭辞の場合はshadowパスワードファイルがModular Crypt Formatと呼ばれる形式で記述されており、bcryptハッシュであることを示す[10]。
ハッシュ文字列の残りの部分にはコストパラメータ、128ビットのソルト(Radix-64エンコードされて22文字になっている)、184ビットの結果のハッシュ値 (Radix-64エンコードされて31文字になっている)が含まれる[11][要出典]. 。
Radix-64とはなんぞや?
Radix-64はunix/cryptアルファベットを利用するもので、標準のBase-64とは異なる[12][13]。コストパラメータはキー拡張の反復回数を設定するもので、2のべき乗の数となっていて、暗号アルゴリズムの入力値となっている。
ふーむ、作りは違うもののBase-64と同じ文字列を利用しているようですね。
Redix-64のリンクをクリックするとBase-64のページが表示されますし。
Base64は、中略 具体的には、
A–Z, a–z, 0–9 までの62文字と、記号2つ (+, /)、さらにパディング(余った部分を詰める)のための記号として = が用いられる。
接頭語のバージョン表記に$
を加えたのがBcryptの全容のようです。
という訳で全てASKIIの内、一般的な文字列と少しの記号しか使ってないようです。
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
退会済みユーザー
2021/09/28 04:45
退会済みユーザー
2021/09/28 05:03