PBKDF2 ハッシュ生成
無料オンライン PBKDF2 ハッシュ生成 ツール。100% ローカル処理 — データは端末の外に出ません。
結果がここに表示されます...
入力 → ハッシュを計算
Usage Guide
PBKDF2について
PBKDF2(パスワードベース鍵導出関数2)は、RFC 8018(PKCS#5)およびNIST SP 800-132で標準化された鍵導出関数です。単純なハッシュ関数とは異なり、PBKDF2は擬似乱数関数(HMAC-SHA256またはHMAC-SHA512)を何十万回も適用することでパスワードから暗号鍵を導出するために特別に設計されています。これによりブルートフォース攻撃の計算コストが大幅に増大します。PBKDF2はFIPS 140-2準拠であり、LUKSディスク暗号化、WPA2/WPA3 Wi-Fi、iOS/Androidセキュアストレージ、パスワードマネージャーで広く使用されています。
使用手順
このツールは2つの操作をサポートします:鍵の導出(暗号化モード)とパスワードの検証(復号モード):
パラメータガイド
PBKDF2には導出鍵のセキュリティと出力を制御する4つの主要パラメータがあります:
PBKDF2 対 Argon2 / bcrypt
他のパスワードハッシュアルゴリズムよりもPBKDF2を選ぶタイミングの理解:
FAQ
Q: PBKDF2の出力フォーマットは何ですか?
A: このツールは自己完結型のハッシュ文字列を出力します: {イテレーション}:{アルゴリズム}:{ソルト_base64}:{導出鍵_hex}。
例:600000:sha256:abc123...==:d4e5f6...。
構成要素:イテレーション:使用されたHMACラウンド数(例:600000)。アルゴリズム:ハッシュ関数(sha256またはsha512)。ソルト_base64:Base64エンコードされたランダムソルト。導出鍵_hex:16進数エンコードされた導出鍵。
検証するには、復号モードで入力:パスワード|{完全なハッシュ文字列}。
Q: なぜPBKDF2は60万回のイテレーションが必要なのですか?
A: PBKDF2はメモリハードではない — GPUで安価に並列化できます。現代のGPUは1秒あたり約 10〜20億回のPBKDF2-SHA256イテレーションを計算できます。1ハッシュあたり60万回のイテレーションでも、GPUあたり1秒に約1,600回の ハッシュ試行が可能です。高いイテレーション数が主要な防御メカニズムです — 攻撃者のコストを直接乗算します。OWASP 2023はSHA-256の最小値を60万に 設定しています。SHA-512には21万回を使用してください。これらの値を時間とともに増やしてください。
Q: PBKDF2はbcryptやArgon2とどう違いますか?
A: PBKDF2:計算ハードのみ、メモリハードではない。GPU並列化可能。FIPS 140-2承認済み。非常に多くのイテレーションが必要。 FIPS規制環境に最適。 bcrypt:計算ハード、〜4KBメモリ、中程度のGPU耐性。72バイトのパスワード制限。任意長の鍵を導出できない。 Argon2id:メモリハード、GPU/ASIC耐性、現代のOWASP推奨。FIPS未承認。同等セキュリティでのパフォーマンス:メモリハード性のおかげで、 Argon2は同じ実効セキュリティレベルでPBKDF2より大幅に高速です。
Q: PBKDF2はFIPS 140-2準拠ですか?
A: はい。PBKDF2はNIST SP 800-132で明示的に定義され、FIPS 140-2の下で承認されています。これにより、米国連邦機関、 請負業者、HIPAAの対象となる医療システム、PCI-DSS要件を持つ金融アプリケーションの必須選択肢となっています。Argon2と scrypt はFIPS未承認です。FIPS準拠が必要な場合、PBKDF2は現在唯一の広く利用可能な選択肢です。PBKDF2の実装がFIPS認定の暗号モジュールを 使用していることを確認してください。
Q: ソルトがなぜ重要で、保存する必要があるのですか?
A: ソルトはハッシュ前にパスワードに追加されるランダム値で、2つの同一パスワードが異なる導出鍵を生成することを保証します。ソルトなしでは、攻撃者は 事前計算されたレインボーテーブルを使用して複数のハッシュを同時にクラックできます。ソルトは秘密である必要はありません — パスワードごとに一意である必要があるだけです。ソルトは出力文字列に含まれており、検証時に同じハッシュを再現するために 導出鍵と一緒に保存する必要があります。パスワード間でソルトを再利用しないでください。
Q: AES鍵導出にPBKDF2を使用するにはどうすればいいですか?
A: AES-256鍵を直接導出するには、鍵長を32バイト(256ビット)に設定します。SHA-256で60万回のイテレーションを使用してください。ソルトを暗号化データと 一緒に保存してください。復号時に、同じパスワード、ソルト、イテレーション、アルゴリズムで鍵を再導出し、 AES-256-GCMで復号するために使用してください。これはLUKSディスク暗号化、iOSデータ保護、多くのパスワードマネージャーの動作原理です。導出鍵は決定論的です — 同じ入力は常に同じ鍵を生成します。
Use Cases
推奨:FIPS準拠のパスワードストレージ
FIPS 140-2、NIST SP 800-131A、HIPAA、またはPCI-DSS対象の組織は、承認された暗号アルゴリズムを使用する必要があります。HMAC-SHA256または HMAC-SHA512を使用したPBKDF2は、これらの要件を満たす唯一の広く利用可能なパスワードKDFです。SHA-256には少なくとも60万回のイテレーションを使用し、 完全な出力文字列を保存してください。規制環境で Argon2id よりPBKDF2を選ぶ主な理由がこれです。
- ✅ PBKDF2-HMAC-SHA256(≥60万回イテレーション)— FIPS準拠
- ✅ PBKDF2-HMAC-SHA512(≥21万回イテレーション)— FIPS準拠
- ❌ Argon2 / scrypt — FIPS 140-2未承認
- ❌ bcrypt — FIPS 140-2未承認
推奨:ディスク暗号化の鍵導出(LUKS)
LUKS(Linux統合キーセットアップ)はデフォルトでPBKDF2(LUKS1)およびPBKDF2/Argon2(LUKS2)を使用して、パスフレーズからボリューム暗号化鍵を 導出します。PBKDF2はユーザーのパスワードから固定長の鍵(AES-256に32バイト)を導出し、それを使用してLUKSヘッダーに保存されたマスター鍵を 暗号化します。WPA2/WPA3 Wi-Fiセキュリティも、Wi-FiパスワードからPairwise Master Key(PMK)を導出するためにPBKDF2を使用しています。
- ✅ PBKDF2-HMAC-SHA512(LUKS1標準)
- ✅ Argon2id(LUKS2推奨 — より優れたメモリハード性)
- 💡 ターゲットハードウェアで導出に0.5〜2秒かかるよう十分高いイテレーションを設定
- 💡 ソルトをディスク/ヘッダーメタデータに保存し、別途保存しない
許容:レガシーシステムでのパスワード検証
多くの既存システム(古いDjangoバージョン、.NET Membership、Java PBKDF2WithHmacSHA1)はすでにPBKDF2ハッシュを保存しています。これらのシステムでは PBKDF2を継続して使用し、ハードウェアの改善に合わせてイテレーション数を徐々に上げてください。検証には保存されたイテレーション数を使用し(ハッシュ 文字列に埋め込まれています)、新規登録とパスワード変更には現在のOWASP推奨事項に更新してください。これにより強制パスワードリセットを避けながら 時間とともにセキュリティを向上できます。
- ✅ PBKDF2(既存のハッシュを保持 — 移行不要)
- ✅ 新しいハッシュのイテレーション数を現在のOWASP最小値に増加
- 💡 次回ログイン時にイテレーション数を透過的にアップグレード
- 💡 FIPSが不要な新規プロジェクトでは Argon2id への移行を検討
許容:1つのパスワードから複数の鍵を導出
PBKDF2は任意長の鍵を導出できるため、マスターパスワードから複数の鍵が必要な場合(例:暗号化用に1つ、MAC認証用に別の1つ)に便利です。独立した鍵を 導出するには、異なるソルトまたはインデックスサフィックスを使用してください。鍵長を64バイトに設定して出力を2つの32バイト鍵に分割するか、異なる ソルトでPBKDF2を2回実行してください。このパターンは一部のパスワードマネージャーアーキテクチャで使用されています。
- ✅ 導出鍵の目的ごとに異なるソルトを使用
- ✅ 初期PBKDF2導出後の鍵拡張にはHKDFを使用
- ❌ 異なる鍵目的に同じソルトを絶対に再利用しない
- 💡 認証付き暗号化のためにAES-256-GCMと組み合わせる
非推奨:新規プロジェクトでArgon2の代替として使用
FIPS要件なしで新規プロジェクトを開始する場合、PBKDF2は Argon2idと比較してより弱い選択肢です。PBKDF2はメモリハードではないため、GPUが攻撃を安価に並列化できます。60万回のイテレーションでも、 ハイエンドGPUは1秒あたり数千回のPBKDF2推測を試みることができます。Argon2idはデフォルトパラメータ(47MBメモリ、1イテレーション)で同等の 実行時間を達成しながら、メモリ要件によりGPU並列化を完全に防止します。
- ❌ Argon2idが利用可能な場合、新規プロジェクトでのPBKDF2使用を避ける
- ✅ Argon2id(メモリハード、OWASP推奨)
- ✅ scrypt(メモリハード、広く利用可能)
- 💡 PBKDF2はFIPS準拠が必須の場合にのみ優先される
非推奨:一般的なデータハッシュ
PBKDF2は鍵導出関数であり、汎用ハッシュ関数ではありません。意図的に遅く設計されており、ファイル内容、チェックサム、メッセージ 認証、重複排除のハッシュには絶対に使用しないでください。データ整合性には SHA-256またはSHA-512を使用してください。メッセージ認証にはHMAC-SHA256を使用してください。PBKDF2の出力を一般的なハッシュとして使用すると、セキュリティ 上のメリットなしに大量のCPUサイクルが無駄になります。
- ❌ ファイルチェックサムやデータ整合性にPBKDF2を使用しない
- ❌ メッセージ認証にPBKDF2を使用しない(HMAC-SHA256を使用)
- ✅ 一般的なデータハッシュにはSHA-256 / SHA-512
- ✅ 認証付きメッセージ整合性にはHMAC-SHA256
ベストプラクティスの概要
- FIPS準拠環境ではPBKDF2-HMAC-SHA256(≥60万回イテレーション)またはHMAC-SHA512(≥21万回)を使用してください。イテレーション、アルゴリズム、ソルトを含む完全なハッシュ文字列を保存してください。
- FIPS要件のない新規プロジェクトではArgon2idを優先してください — メモリハードであり、同等のパフォーマンスでGPU攻撃に対して大幅に耐性があります。
- パスワードごとに一意のランダムソルトを常に使用してください(このツールで自動生成)。アプリケーションコードでソルトを再利用したりハードコードしたりしないでください。
- ハードウェアの改善とともに時間をかけてイテレーション数を増やしてください。イテレーション数はハッシュ文字列に保存されているため、古い値と新しい値が共存できます。
- PBKDF2はログインや鍵設定時にのみ使用してください — すべてのリクエストに使用しないでください。高頻度の操作には認証後にトークン(JWT、セッション)を発行してください。