bcrypt オンラインハッシュ生成・検証ツール
生成・検証・解析を一つにまとめ、Costを調整して性能ベンチマークも実行できるブラウザローカルツール
bcrypt オンラインハッシュ生成・検証ツール
bcryptはパスワード保存専用に設計されたハッシュアルゴリズムで、ソルトを組み込み、Costワークファクターによって計算コストを制御します。Costを1増やすと、1回の計算時間はおよそ2倍になります。このツールでは生成、検証、解析を同じページで利用できます。
ハッシュ生成
パスワードを入力してCostを選択するとハッシュを生成できます。Costは4〜15から選択でき、テスト用、低コスト、推奨範囲、高コストに分類されています。デフォルトは12です。パスワード欄は表示・非表示を切り替えられ、ブラウザの安全な乱数を利用してパラメータテスト用のランダムパスワードを生成することもできます。生成結果は標準的なbcrypt文字列としてコピーできます。
パスワード検証
データベースに保存されているbcryptハッシュと検証対象のパスワードを入力すると、ハッシュに記録されたバージョンとCostを読み取り、そのパラメータで再計算して比較します。新しいハッシュは生成しません。2a、2b、2yの3種類のバージョンに対応しており、2yはPHPエコシステムでよく使用され、2bは現在主流の実装です。
ハッシュ解析
解析モードではbcryptハッシュからバージョン識別子、Cost値、22文字のソルト、31文字のハッシュ本体を読み取れます。形式が正しくない場合は原因を明確に表示します。プレフィックスが2a、2b、2y以外の場合、ハッシュ本体が53文字未満の場合、Costが4〜31の有効範囲外の場合などを検出します。
性能ベンチマーク
現在のCostで複数回連続して計算し、平均、最短、最長の計算時間を表示します。一般的な調整目安として、1回あたり約100〜250ミリ秒を基準にCostを上げるか下げるかを提案します。ベンチマーク結果は現在使用している端末とブラウザに依存するため、サーバー上の実際の処理時間は対象環境で別途測定してください。
注意事項とエラー処理
- bcryptはパスワードの最初の72バイトだけを計算対象とし、それを超える部分は無視されます。
- パスワードハッシュは一方向で不可逆のため、復号することはできません。ツールは計算、検証、パラメータ解析のみを行います。
- Costが高すぎて計算に失敗する場合は、パラメータを下げて再試行するよう案内します。
- ブラウザでローカル計算エンジンを実行できない場合はエラーを表示し、パスワードをサーバーへ送信することはありません。
利用シーン
- バックエンドプロジェクトで適切なCostを選択し、ログイン性能と安全性のバランスを確認。
- ログイン検証に失敗した際、パスワードとデータベース上のハッシュが実際に一致するか確認。
- 過去のデータで使用されているbcryptのバージョンとワークファクターを確認。
- テストアカウントのデータ作成や学習・デモ用途。
プライバシーとデータセキュリティ
すべての計算はブラウザのWebAssemblyエンジンによってローカルで実行されます。パスワードとハッシュはサーバーへアップロード・保存されません。パスワード関連ツールであるため、サーバー側のフォールバック計算は意図的に提供しておらず、ローカルエンジンが利用できない場合もエラーを表示するだけで、パスワードをブラウザ外へ送信することはありません。
bcryptパスワードハッシュのオンライン生成・検証・解析
- ハッシュ生成:Costを4〜15から選択でき、デフォルトは12。推奨範囲も表示
- パスワード検証:ハッシュに記録されたパラメータを読み取り、再計算して比較。2a、2b、2yの3バージョンに対応
- ハッシュ解析:既存のハッシュからバージョン、Cost、ソルト、ハッシュ本体を読み取り
- 性能ベンチマーク:現在のパラメータで複数回計算し、平均、最短、最長時間と調整案を表示
- ランダムパスワード生成、パスワードの表示・非表示に対応し、bcryptが最初の72バイトのみ使用することも案内
- 形式検証を明確化し、プレフィックス不正、53文字未満の本体、4〜31の範囲外のCostを検出