Bcryptジェネレーター&検証ツール
bcryptパスワードハッシュの生成と、既存のハッシュに対するパスワードの検証。すべての処理はブラウザ内で実行されます。
このツールについて
Bcryptジェネレーター&検証ツールは、bcryptアルゴリズムでパスワードをハッシュし、平文パスワードを既存のbcryptハッシュに対して検証するための無料ブラウザベースツールです。bcryptは、意図的に低速に設計された業界標準のパスワードハッシュ関数で、ブルートフォース攻撃を計算コスト的に非現実的にします。
SHA-256(ハッシュジェネレーターで利用可能)のような高速ハッシュ関数とは異なり、bcryptは基盤となるBlowfish暗号の反復回数を制御するコストファクター(ソルトラウンド)を組み込んでいます。コストファクターが1増えるごとに計算時間が倍増するため、コストファクター12は10の4倍遅くなります。この適応的な遅さこそが、bcryptをパスワード保存に最適にしている理由です。ハードウェアが高速化すれば、コストファクターを上げるだけで対応できます。
生成タブでは、パスワードを入力し、4から16のコストファクターを選択できます。生成されるハッシュには、アルゴリズム識別子($2a$または$2b$)、コストファクター、22文字のBase64エンコードされたソルト、31文字のハッシュが含まれ、すべて60文字の単一文字列になります。検証タブでは、平文パスワードが既存のbcryptハッシュと一致するかを確認でき、認証システムのデバッグに便利です。
すべての処理は純粋なJavaScriptのbcrypt実装を使用してブラウザ内で完全に実行されます。パスワードやハッシュがサーバーに送信されることはありません。ハッシュするための強力なパスワードを生成するには、パスワードジェネレーターをお試しください。
使い方
- 生成タブを開いて新しいbcryptハッシュを作成します。
- パスワードフィールドにハッシュしたいパスワードを入力します。
- 希望するソルトラウンド(コストファクター)を選択します。デフォルトの10はほとんどのアプリケーションに適しています。セキュリティの高いシステムには12以上に増やしてください。
- Generate HashをクリックするかCtrl+Enterを押します。bcryptハッシュと生成時間が下に表示されます。
- コピーアイコンをクリックするかCtrl+Shift+Cを押してハッシュをクリップボードにコピーします。
- 検証タブに切り替えて、既存のハッシュに対してパスワードを確認します。
- 平文パスワードを入力しbcryptハッシュを貼り付け、Verifyをクリックして一致するかを確認します。
よくある質問
データは安全ですか?
はい。すべてのハッシュ処理と検証は、純粋なJavaScriptのbcrypt実装を使用してブラウザ内で完全に実行されます。パスワード、ハッシュ、その他のデータがサーバーに送信されることはありません。
ソルトラウンドはいくつにすべきですか?
コストファクター10がデフォルトで、セキュリティと速度のバランスが取れています。銀行や医療システムなどの高セキュリティアプリケーションには12以上を検討してください。増分ごとに計算時間が倍増するため、デプロイ前にターゲットハードウェアでパフォーマンスをテストしてください。
$2a$と$2b$の違いは何ですか?
$2a$は元のbcrypt識別子で、$2b$は特定のライブラリにおける軽微な実装の問題を修正したバージョンです。実際にはどちらも互換性のあるハッシュを生成し、最新のbcryptライブラリは両方の識別子を正しく処理します。
パスワードにSHA-256よりbcryptが優れている理由は?
SHA-256は高速に設計されているため、チェックサムには効率的ですがパスワード保存には不適切です。攻撃者は1秒間に数十億のSHA-256ハッシュを計算できます。bcryptは意図的に低速で、設定可能なコストファクターを含むため、ブルートフォース攻撃のコストが桁違いに高くなります。
このハッシュをデータベースに直接使用できますか?
はい。60文字のbcryptハッシュ文字列には、検証に必要なすべての情報(アルゴリズムバージョン、コストファクター、ソルト、ハッシュ)が含まれています。VARCHAR(60)またはTEXTカラムに直接保存し、バックエンドの任意のbcryptライブラリでパスワードを検証できます。
ソルトラウンドが高いとハッシュに時間がかかるのはなぜですか?
ソルトラウンドが1増えるごとに、Blowfish暗号の内部反復回数が倍増します。ラウンド10ではbcryptは2^10(1,024)回の反復を実行し、ラウンド16では2^16(65,536)回の反復を実行します。これは64倍の作業量です。これは設計上の特徴で、ブルートフォース攻撃を比例的に困難にします。