Bcrypt ハッシュと検証
ブラウザ内でパスワードのソルト付き bcrypt ハッシュを生成し、既存ハッシュと平文を照合します。
ブラウザ内でパスワードのソルト付き bcrypt ハッシュを生成し、既存ハッシュと平文を照合します。 ブラウザ内でパスワードのソルト付き bcrypt ハッシュを生成し、既存ハッシュと平文を照合します。
ブラウザ内でパスワードのソルト付き bcrypt ハッシュを生成し、既存ハッシュと平文を照合します。
ブラウザ内でパスワードのソルト付き bcrypt ハッシュを生成し、既存ハッシュと平文を照合します。 ブラウザ内でパスワードのソルト付き bcrypt ハッシュを生成し、既存ハッシュと平文を照合します。
bcrypt は 1999 年に Niels Provos と David Mazieres が設計した適応型パスワード ハッシュ関数です。MD5 や SHA-256 のような高速ダイジェストと違い、bcrypt は 意図的に CPU 時間を消費します。各ハッシュは Blowfish 暗号を設定可能なラウンド 数だけ実行し、コスト係数が 1 上がるごとに作業量は倍増します。この減速こそが オフラインの辞書攻撃や総当たり攻撃を高価にする理由です。正しい実装は出力に 128 ビットのランダムソルトを埋め込むため、同じパスワードのハッシュは常に異な り、レインボーテーブルは無力です。
bcrypt ハッシュは $2b$12$e0.6kJ8a5X8u5Yp3qR5E0e9dF4z3W2c1v0b9n8m7l6k5j4h3g2f1
のような形をしています。先頭のドル記号の後の各セグメントがアルゴリズム版、
コスト、ソルトを示します:
$2b$ -- アルゴリズムのリビジョン。$2a$ と $2y$ は 8 ビット符号ビット
の扱いが微妙に異なる旧バリアントで、$2b$ が現在の推奨であり bcryptjs が
出力する形式です。12 -- コスト係数。2^12 = 4096 ラウンドの鍵スケジュール。+1 ごとに時間が
倍になります。対話型ログインなら 10〜12、保存する認証情報なら 12〜14 が
適切です。入力欄にパスワードを入力し、コスト係数を選んで「ハッシュ化」を押します。 生成されたハッシュは出力欄に表示され、検証欄にも自動入力されます。既存の ハッシュを確認するには検証欄に貼り付け、入力欄に候補パスワードを入力します。 ページは即座に比較し、緑のチェックか赤いバツを表示します。bcrypt.compareSync で比較するため、間違った推測がどの程度近かったかを明かすことはありません。 毎回フルハッシュしてから結果が決まります。
bcrypt は入力を 72 バイトに切り詰めます。長いパスワードは黙って切り捨てられ、 最初の 72 バイトが同じ 2 つのパスワードは同一と判定されます。より長い入力を 扱うなら SHA-256(16 進)で事前ハッシュし、そのダイジェストに bcrypt を適用 してください。bcrypt は意図的にメモリ軽量なアルゴリズムで、Argon2 や scrypt のようなメモリハード設計ほど GPU アレイに強くありませんが、4KB のテーブルと 64 バイトの状態でも安価な ASIC クラックは魅力に欠けます。新規システムには Argon2id が適していますが、bcrypt はレガシー互換性と Argon2 が使えない環境で 優れた選択肢であり続けます。このページは完全にブラウザ内で動作し、パスワード とハッシュが端末の外に出ることはありません。