PBKDF2 ハッシュ生成

無料オンライン PBKDF2 ハッシュ生成 ツール。100% ローカル処理 — データは端末の外に出ません。

General
Password Hashing / KDF
Specialized
Deprecated
bytes
出力

結果がここに表示されます...

入力 ハッシュを計算

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セキュアストレージ、パスワードマネージャーで広く使用されています。

FIPS 140-2準拠:PBKDF2はFIPS 140-2およびNIST SP 800-132の下で承認された唯一のパスワードベースKDFであり、米国政府機関、 医療(HIPAA)、金融(PCI-DSS)環境で必須の選択肢です。OWASP 2023では PBKDF2-HMAC-SHA256に60万回のイテレーション、PBKDF2-HMAC-SHA512に21万回を推奨しています。

使用手順

このツールは2つの操作をサポートします:鍵の導出(暗号化モード)とパスワードの検証(復号モード):

1. 導出モード(暗号化)「暗号化」モードを選択し、パスワードを入力、パラメータ(アルゴリズム、イテレーション、鍵長、ソルト)を設定して「ハッシュを計算」をクリック
2. 出力を取得結果は完全なハッシュ文字列:{イテレーション}:{アルゴリズム}:{ソルト_base64}:{導出鍵_hex}
3. 検証モード(復号)「復号」モードを選択して入力:パスワード|{イテレーション}:{アルゴリズム}:{ソルト_base64}:{導出鍵_hex}
4. 結果を確認パスワードが一致する場合は「✓ Password verified」、一致しない場合はエラーメッセージを返す
5. 自動ソルトソルトフィールドを空のままにすると、暗号的にランダムな16バイトのソルトが自動生成される
プライバシー保護:すべてのPBKDF2計算はブラウザ内で完全に実行されます。データはサーバーに送信されません — 完全オフライン処理。

パラメータガイド

PBKDF2には導出鍵のセキュリティと出力を制御する4つの主要パラメータがあります:

ハッシュアルゴリズムSHA-256(デフォルト)またはSHA-512 — SHA-512はより大きなセキュリティマージンを提供しますが、必要なイテレーションは少なくなります(210k対600k)
イテレーションHMACラウンド数。OWASP 2023:SHA-256に60万回、SHA-512に21万回。多いほど遅い = ブルートフォースに対してより安全
鍵長バイト単位の出力長(1〜256)。デフォルトは32バイト(256ビット)、AES-256鍵導出に適している
ソルトBase64エンコードされたランダム値。空のままにすると自動生成(16ランダムバイト)。後の検証のために導出鍵と一緒に保存する必要あり
イテレーション数の警告:イテレーション数が少なすぎるとPBKDF2が大幅に弱体化します。現代のGPUは1秒あたり数百万回の PBKDF2-SHA256イテレーションを計算できます。常に最新のOWASP推奨事項(SHA-256に600k)に従い、時間の経過とともに値を増やしてください。 パスワードストレージには10万回未満の値を絶対に使用しないでください。

PBKDF2 対 Argon2 / bcrypt

他のパスワードハッシュアルゴリズムよりもPBKDF2を選ぶタイミングの理解:

PBKDF2FIPS 140-2準拠、標準化済み、広くサポートされている。メモリハードではない — GPU並列化可能。セキュリティのために非常に多くのイテレーションが必要(≥600k)
Argon2idモダン(2015年)、メモリハード(GPU/ASIC耐性)、一般的なパスワードストレージのOWASP推奨。FIPS未承認
bcryptクラシック(1999年)、計算ハード(〜4KBメモリ)、GPU耐性あるがArgon2より低い。鍵導出には不向き
scryptArgon2同様のメモリハード、Bitcoinの鍵導出とLUKS2で使用。FIPS未承認
PBKDF2を選ぶタイミング:FIPS 140-2準拠が必要な場合、またはArgon2が使用できない環境(レガシーシステム、組み込みデバイスなど) ではPBKDF2を使用してください。他のすべての新規プロジェクトでは、優れたメモリハード性のために Argon2id を優先してください。

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を選ぶ主な理由がこれです。

Recommended Configuration:
  • ✅ 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を使用しています。

Recommended Configuration:
  • ✅ PBKDF2-HMAC-SHA512(LUKS1標準)
  • ✅ Argon2id(LUKS2推奨 — より優れたメモリハード性)
  • 💡 ターゲットハードウェアで導出に0.5〜2秒かかるよう十分高いイテレーションを設定
  • 💡 ソルトをディスク/ヘッダーメタデータに保存し、別途保存しない
許容:レガシーシステムでのパスワード検証

多くの既存システム(古いDjangoバージョン、.NET Membership、Java PBKDF2WithHmacSHA1)はすでにPBKDF2ハッシュを保存しています。これらのシステムでは PBKDF2を継続して使用し、ハードウェアの改善に合わせてイテレーション数を徐々に上げてください。検証には保存されたイテレーション数を使用し(ハッシュ 文字列に埋め込まれています)、新規登録とパスワード変更には現在のOWASP推奨事項に更新してください。これにより強制パスワードリセットを避けながら 時間とともにセキュリティを向上できます。

Recommended Configuration:
  • ✅ PBKDF2(既存のハッシュを保持 — 移行不要)
  • ✅ 新しいハッシュのイテレーション数を現在のOWASP最小値に増加
  • 💡 次回ログイン時にイテレーション数を透過的にアップグレード
  • 💡 FIPSが不要な新規プロジェクトでは Argon2id への移行を検討
許容:1つのパスワードから複数の鍵を導出

PBKDF2は任意長の鍵を導出できるため、マスターパスワードから複数の鍵が必要な場合(例:暗号化用に1つ、MAC認証用に別の1つ)に便利です。独立した鍵を 導出するには、異なるソルトまたはインデックスサフィックスを使用してください。鍵長を64バイトに設定して出力を2つの32バイト鍵に分割するか、異なる ソルトでPBKDF2を2回実行してください。このパターンは一部のパスワードマネージャーアーキテクチャで使用されています。

Recommended Configuration:
  • ✅ 導出鍵の目的ごとに異なるソルトを使用
  • ✅ 初期PBKDF2導出後の鍵拡張にはHKDFを使用
  • ❌ 異なる鍵目的に同じソルトを絶対に再利用しない
  • 💡 認証付き暗号化のためにAES-256-GCMと組み合わせる
非推奨:新規プロジェクトでArgon2の代替として使用

FIPS要件なしで新規プロジェクトを開始する場合、PBKDF2は Argon2idと比較してより弱い選択肢です。PBKDF2はメモリハードではないため、GPUが攻撃を安価に並列化できます。60万回のイテレーションでも、 ハイエンドGPUは1秒あたり数千回のPBKDF2推測を試みることができます。Argon2idはデフォルトパラメータ(47MBメモリ、1イテレーション)で同等の 実行時間を達成しながら、メモリ要件によりGPU並列化を完全に防止します。

Recommended Configuration:
  • Argon2idが利用可能な場合、新規プロジェクトでのPBKDF2使用を避ける
  • ✅ Argon2id(メモリハード、OWASP推奨)
  • ✅ scrypt(メモリハード、広く利用可能)
  • 💡 PBKDF2はFIPS準拠が必須の場合にのみ優先される
非推奨:一般的なデータハッシュ

PBKDF2は鍵導出関数であり、汎用ハッシュ関数ではありません。意図的に遅く設計されており、ファイル内容、チェックサム、メッセージ 認証、重複排除のハッシュには絶対に使用しないでください。データ整合性には SHA-256またはSHA-512を使用してください。メッセージ認証にはHMAC-SHA256を使用してください。PBKDF2の出力を一般的なハッシュとして使用すると、セキュリティ 上のメリットなしに大量のCPUサイクルが無駄になります。

Recommended Configuration:
  • ❌ ファイルチェックサムやデータ整合性にPBKDF2を使用しない
  • ❌ メッセージ認証にPBKDF2を使用しない(HMAC-SHA256を使用)
  • ✅ 一般的なデータハッシュにはSHA-256 / SHA-512
  • ✅ 認証付きメッセージ整合性にはHMAC-SHA256

ベストプラクティスの概要

  • FIPS準拠環境ではPBKDF2-HMAC-SHA256(≥60万回イテレーション)またはHMAC-SHA512(≥21万回)を使用してください。イテレーション、アルゴリズム、ソルトを含む完全なハッシュ文字列を保存してください。
  • FIPS要件のない新規プロジェクトではArgon2idを優先してください — メモリハードであり、同等のパフォーマンスでGPU攻撃に対して大幅に耐性があります。
  • パスワードごとに一意のランダムソルトを常に使用してください(このツールで自動生成)。アプリケーションコードでソルトを再利用したりハードコードしたりしないでください。
  • ハードウェアの改善とともに時間をかけてイテレーション数を増やしてください。イテレーション数はハッシュ文字列に保存されているため、古い値と新しい値が共存できます。
  • PBKDF2はログインや鍵設定時にのみ使用してください — すべてのリクエストに使用しないでください。高頻度の操作には認証後にトークン(JWT、セッション)を発行してください。

ディスカッション&フィードバック

0件のコメント
自分