bcryptハッシュ生成・照合
パスワードをbcryptでハッシュ化し、保存済みのハッシュと一致するかを確認できます。ブラウザ内で処理され、パスワードやハッシュがサーバーに送信されることはありません。SHA-256などの単純なハッシュは ハッシュ生成 をご利用ください。
🔒 ブラウザ内で完結・入力データはサーバーに送信されません
ハッシュを生成
値が1増えると計算時間が約2倍になります。12以上は数秒かかることがあります。
ハッシュを照合
注意事項
- bcryptはパスワードの先頭72バイトまでしか使いません。日本語は1文字3バイトなので、24文字を超えると切り捨てられます。このツールでは72バイトを超える入力は生成できません。
- ソルトは生成のたびにランダムに作られるため、同じパスワードでも毎回違うハッシュになります。一致の確認は「照合」で行ってください。
- コストを上げるほど総当たり攻撃に強くなりますが、ログイン時の計算も重くなります。目安として、本番では10〜12程度が使われます。
- 本番で使っているパスワードの入力は避け、テスト用の値で試すことをおすすめします。入力内容は保存・送信されませんが、画面共有などにご注意ください。
用語解説
bcrypt
パスワード保存用に設計されたハッシュ関数です。意図的に計算を遅くすることで、総当たり攻撃のコストを高めます。
コスト(ラウンド数)
計算の重さを決める値で、2のコスト乗回の繰り返しを行います。コスト10なら1024回、12なら4096回です。
ソルト
ハッシュ化のたびに加えるランダムな値です。bcryptではハッシュ文字列の中に含まれるため、別途保存する必要はありません。
よくある質問
同じパスワードなのにハッシュが毎回違うのはなぜですか?
bcryptは生成のたびにランダムなソルトを加えるためです。これは正常な動作で、ハッシュ同士を比べても一致は分かりません。保存済みのハッシュとの一致は、このツールの「ハッシュを照合」(内部でソルトを取り出して再計算)で確認してください。
コストはいくつにすればよいですか?
値が1増えるごとに計算時間が約2倍になります。ログイン処理が重くなりすぎず、総当たりには十分遅い値として、現在は10〜12程度がよく使われます。サーバーの性能に合わせて、1回あたり100〜500ミリ秒程度になる値を目安に選んでください。このツールではブラウザで動かすため4〜14に制限しています。
長いパスワードや日本語のパスワードで注意することはありますか?
bcryptは先頭72バイトまでしか使いません。日本語は1文字3バイト、絵文字は4バイトなので、日本語だけなら24文字を超えた部分は無視されます。このツールは72バイトを超える入力をエラーにします。長いパスワードを扱う場合は、先にSHA-256などでハッシュ化してから渡す方法がありますが、実装を揃える必要があります。
$2a$・$2b$・$2y$の違いは何ですか?
実装上のバージョン表記の違いで、現在の仕様では同じ計算結果になります。このツールは$2a$・$2b$・$2y$のハッシュを照合でき、生成時は$2b$形式のハッシュを出力します。
このページをシェア
