bcryptハッシュ生成・照合ツール
パスワードをbcryptでハッシュ化し、ハッシュと一致するかを照合します。
パスワードをハッシュ化
0/72バイト
1つ上げるごとに時間は2倍になります。ログインには10〜12が一般的です。ハッシュにコストが記録されるため、照合のときに設定は不要です。
パスワードを入力すると、ここにハッシュが表示されます。
パスワードとハッシュを照合
$2a$・$2b$・$2y$で始まる60文字。コストはハッシュから読み取ります。
パスワードとハッシュを入力すると、照合します。
bcryptは、意図的に遅く設計されたパスワードハッシュです。サーバーはパスワードの代わりにbcryptハッシュを保存し、ログインのときには入力されたパスワードをハッシュ化して照合します。ハッシュにはそれぞれ固有のランダムなソルトとコストが含まれているため、同じパスワードでも毎回違うハッシュになり、そのどれでも照合できます。このページでは、設定ファイルやテスト用アカウントのハッシュを作ったり、パスワードが保存済みのハッシュと一致するかを確かめたりできます。ハッシュ化はブラウザ内で行われるため、パスワードが端末の外に出ることはありません。無料で登録も不要です。
bcryptハッシュを生成・照合する方法
- パスワードを入力します。入力に合わせてハッシュが表示され、端末でかかった時間もわかります。
- システムで別のコストが必要な場合は、「コスト」のスライダーを動かします(初期値は10)。
- $2b$ハッシュをコピーするか、「下で照合する」をクリックして照合結果を確認します。
- 既存のハッシュを照合するには、「パスワードとハッシュを照合」にハッシュとパスワードを貼り付けます。「一致」か「不一致」が表示されます。
主な機能
- 毎回新しいランダムな16バイトのソルトを使う$2b$ハッシュ
- コスト4〜16(初期値10)、端末でハッシュ化にかかった時間を表示
- $2a$・$2b$・$2y$のハッシュとパスワードを照合し、「一致」「不一致」をバージョン・コストとともに表示
- bcryptの72バイト制限に対してバイト数を数え、無視される文字を警告
- バックグラウンドのワーカーで動作するため、コストを上げてもページが固まらない。「停止」も、新しいソルトでの「再ハッシュ」も可能
- Argon2のハッシュを見分けて、Argon2ツールへのリンクを表示
プライバシーは守られますか?
はい。ハッシュ化と照合は、ブラウザ内のWebAssemblyによりバックグラウンドのワーカーで実行されます。パスワードがアップロードや保存されることはありません。
よくある質問
bcryptのハッシュは復号できますか?
いいえ。bcryptは一方向のハッシュで、パスワードに戻す鍵は存在しません。パスワードを見つけるには推測してそれぞれをハッシュ化するしかなく、bcryptはそれを意図的に遅くしています。正しいと思うパスワードを確かめたいときは、「パスワードとハッシュを照合」を使ってください。
同じパスワードなのに、毎回ハッシュが違うのはなぜですか?
ハッシュごとに新しいランダムな16バイトのソルトが使われ、ハッシュ文字列の中に一緒に保存されるためです。照合するときはハッシュからソルトを読み取るので、どのハッシュも同じパスワードで一致します。
コストはどれを選べばいいですか?
コストを1つ上げるごとに、処理量は2倍になります。ログインには10〜12が一般的です。サーバーが1回のログインにかけられる範囲で、できるだけ高いコストを選んでください。目安は0.25〜0.5秒ほどのことが多いです。ここに表示される時間は、お使いの端末でのものです。
長いパスワードの一部がbcryptで無視されるのはなぜですか?
bcryptは、UTF-8にしたパスワードの先頭72バイトしか読まないためです。日本語のかなや漢字は1文字3バイトなので、24文字で上限に達します。文字が無視されるときはツールが警告します。もっと長いパスフレーズを使うなら、この制限のないArgon2を使ってください。
$2a$・$2b$・$2y$の違いは何ですか?
特定の実装にあった古いバグの修正を表す記号で、通常のパスワードでは同じ結果になります。このツールは現在のOpenBSDの接頭辞である$2b$で書き出し、3つすべてを照合できます。ここで作ったハッシュは、Pythonのbcryptライブラリと、Linuxのcrypt()で照合できることを確認しています。