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実装を使用してブラウザ内で完全に実行されます。パスワードやハッシュがサーバーに送信されることはありません。ハッシュするための強力なパスワードを生成するには、パスワードジェネレーターをお試しください。

使い方

  1. 生成タブを開いて新しいbcryptハッシュを作成します。
  2. パスワードフィールドにハッシュしたいパスワードを入力します。
  3. 希望するソルトラウンド(コストファクター)を選択します。デフォルトの10はほとんどのアプリケーションに適しています。セキュリティの高いシステムには12以上に増やしてください。
  4. Generate HashをクリックするかCtrl+Enterを押します。bcryptハッシュと生成時間が下に表示されます。
  5. コピーアイコンをクリックするかCtrl+Shift+Cを押してハッシュをクリップボードにコピーします。
  6. 検証タブに切り替えて、既存のハッシュに対してパスワードを確認します。
  7. 平文パスワードを入力し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倍の作業量です。これは設計上の特徴で、ブルートフォース攻撃を比例的に困難にします。

関連ツール