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を上げるか下げるかを提案します。ベンチマーク結果は現在使用している端末とブラウザに依存するため、サーバー上の実際の処理時間は対象環境で別途測定してください。
すべての計算はブラウザのWebAssemblyエンジンによってローカルで実行されます。パスワードとハッシュはサーバーへアップロード・保存されません。パスワード関連ツールであるため、サーバー側のフォールバック計算は意図的に提供しておらず、ローカルエンジンが利用できない場合もエラーを表示するだけで、パスワードをブラウザ外へ送信することはありません。
コメント 0