bcryptハッシュ生成ツール
大きいほど計算は遅くなりますが、解読は難しくなります。
ブラウザ内でハッシュ化されます。パスワードがサーバーに送信されることはありません。
このツールとは bcryptハッシュ生成ツール
bcryptはパスワードを安全に保存するという一つの目的のために作られたパスワードハッシュ関数です。あえて遅く、ランダムなソルトを混ぜるため、同じパスワードでも人によって異なるハッシュになり、攻撃者は事前計算した表を使えません。この生成ツールは、現代的な$2bバリアントを使い、ブラウザ内でパスワードをbcryptハッシュに変換します。コスト係数は各ハッシュにかかる作業量を制御し、ソルトは出力に埋め込まれるため、別に保存する必要はありません。
使い方
- ハッシュ化したいパスワードを入力または貼り付けます。
- コスト係数を選びます。今日のサーバーでは10〜12が一般的です。
- 「ハッシュを生成」をクリックし、60文字のbcryptハッシュを読み取ります。
- ハッシュをコピーして保存します。後でパスワードをハッシュと照合するにはbcrypt検証ツールを使います。
こんなときに便利
ユーザーテーブルの初期データ投入、マイグレーションの作成、ログインの動作確認などで本物のbcryptハッシュが必要ですか。パスワードを入力し、コストを選び、$2bハッシュをデータベースやフィクスチャにそのままコピーしてください。ソルトはハッシュに埋め込まれているので、保存するのはその1つの文字列だけです。保存済みハッシュとパスワードが一致するか確認したいときはbcrypt検証ツールに切り替えます。
よくある質問
コスト係数はいくつにすべきですか。
コスト係数はbcryptの実行ラウンド数を決め、1段階ごとに作業量が倍になります。今日のサーバーでは10〜12が一般的で、安全性と各ログインにかかる時間のバランスを取ります。大きいほど安全ですが遅くなるので、ユーザーを煩わせない範囲で、ハードウェアが許す最大値を選んでください。
なぜ毎回違うハッシュになるのですか。
bcryptはハッシュごとに新しいランダムなソルトを生成し、出力に埋め込みます。これは意図的で、同じパスワードでも異なるハッシュになり、攻撃者が使い回されたパスワードを見抜いたり事前計算表を使ったりするのを防ぎます。ソルトはハッシュ内に入って運ばれるので、検証は問題なく動きます。
bcryptハッシュをパスワードに戻せますか。
いいえ。bcryptは一方向ハッシュで、復号はありません。パスワードがハッシュと一致するか確認するには、同じソルトで候補を再ハッシュして比較します。それがまさにbcrypt検証ツールの動作です。
どのbcryptバリアントを生成しますか。
現代的な$2bバリアントです。PHP・Node・Pythonなど他のbcryptライブラリが生成する$2aや$2yのハッシュと互換性があるため、ここで生成したハッシュは標準的なbcryptが使われる場所ならどこでも検証できます。
パスワードはどこかに送信されますか。
いいえ。ハッシュは自己完結した実装によりすべてブラウザ内で計算されます。パスワードが送信・保存されることはなく、そのためこのツールには共有リンクがありません。