本文へスキップ
ToolMug

bcrypt ハッシュの生成と検証

パスワードから bcrypt ハッシュを作成したり、既存の bcrypt ハッシュと一致するか確認したりできます。ログイン処理のデバッグや管理者パスワードの初期登録に便利で、計算はすべてブラウザ内で行われ、パスワードはサーバーに送信されません。

ブラウザ内で動作 — 入力した内容はアップロードされません

ハッシュを生成

10

1 段階上がるごとに計算量が 2 倍になります。現在のログイン用途では 10〜12 が一般的です。

パスワードとハッシュを照合

使い方

  1. 「ハッシュを生成」でパスワードを入力し、スライダーでコストを設定して「ハッシュを生成」をクリックします。
  2. ハッシュをコピーします。毎回新しいランダムソルトを使うため、同じパスワードでも生成結果は毎回異なります。
  3. 確認する場合は右側に bcrypt ハッシュを貼り付け、パスワードを入力します。一致するか結果が表示されます。

オプションの説明

コストファクター
4〜15、既定値は 10 です。計算量は 2 のコスト乗なので、1 段階上がるごとに時間が 2 倍になります。ブラウザでの処理時間も目安として表示します。
バージョンプレフィックス
新しく生成するハッシュは $2b$ で始まります。確認では $2a$、$2b$、PHP の password_hash が作る $2y$ をそのまま使えます。
72 バイト制限
bcrypt はパスワードの最初の 72 バイトだけを使います。UTF-8 では文字によって 2〜4 バイトになるため、長いパスワードには警告を表示し、残りは無視します。

ハッシュの構造

$2b$10$N9qo8uLOickgx2ZMRZoMyeIjZAgcfl7p92ldGxad68LJZdL17lhWy

よくある質問

同じパスワードなのに毎回ハッシュが違うのはなぜですか?

bcrypt はハッシュごとに 16 バイトのランダムなソルトを生成し、コストの後の 22 文字としてハッシュ内に保存します。確認時はハッシュからソルトを取り出して再計算するため、どの結果でも検証できます。

bcrypt は復号できますか?

いいえ。bcrypt は一方向ハッシュなので、候補のパスワードをハッシュ化して比較する方法でしか確認できません。bcrypt を「復号」できるとうたうサイトは、よくあるパスワードを順番に試しているだけです。

どのコストファクターを使えばよいですか?

サーバーで 1 回のハッシュに約 100 ms かかる値にするのが一般的で、現在は通常 10〜12 です。低すぎると総当たり攻撃に弱くなり、高すぎるとログインとサーバーの負荷が増えます。

MD5 や SHA-256 とどう違いますか?

MD5 と SHA-256 は高速に計算するためのものなので、1 台の GPU で毎秒何十億回も試せて、パスワード保存だけには向きません。bcrypt は意図的に遅く、ソルトも組み込まれたパスワード保存用の方式です。

パスワードはアップロードされますか?

いいえ。ハッシュ化と確認はブラウザの JavaScript で行われ、オフラインでも動作します。

プライバシー

このツールはすべてブラウザ内で動作します。ファイルやテキストはお使いの端末上で処理され、当サイトのサーバーにアップロードされることはありません。

関連ツール