コンテンツへスキップ
🛠️ToolsShed

PBKDF2ハッシュ生成ツール

ブラウザでPBKDF2-SHA256パスワードハッシュを生成・検証します。

Web Crypto APIでPBKDF2-SHA256を使用。形式: hex_salt:hex_hash

このツールについて

PBKDF2(Password-Based Key Derivation Function 2)は、パスワードをランダムなソルトで何千回も何百万回も繰り返しハッシュすることで、ブルートフォース攻撃による解読を極めて遅く、コストが高くなるように設計された暗号化アルゴリズムです。単純で高速なハッシュ関数とは異なり、GPU加速攻撃に脆弱ですが、PBKDF2はパスワードセキュリティを目的に設計されており、ハードウェアが高速化するにつれて反復回数を時間とともに調整でき、将来の脅威に対して耐性を保つことができます。このブラウザベースのツールでは、パスワードをサーバーに送信することなく、PBKDF2-SHA256ハッシュを完全にオフラインで生成および検証できます。

ハッシュを生成するには、パスワードを入力し、反復回数を調整し(値が高いほど遅くなりますが、より安全です;100,000は最新システムの堅固なデフォルト)、ソルト長を選択し(16バイトが標準)、『ハッシュを生成』をクリックするだけです。ツールはhex_salt:hex_hashの形式でハッシュを生成し、安全に保存できます。保存されたハッシュに対してパスワードを検証するには、『検証』タブに切り替え、ハッシュ文字列を貼り付け、候補パスワードを入力し、『検証』をクリックしてください—ツールは一致しているかどうかを教えてくれます。これはアプリケーションでパスワード検証を実装している開発者、パスワード強度をテストしているセキュリティ専門家、またはパスワードハッシング方法を理解する必要がある誰でも活用できます。

ハッシュの強度は反復回数に依存しています。NISTは2024年時点で最低210,000回の反復を推奨しており、古いシステムでは10,000回または50,000回を使用しているかもしれません。PBKDF2はパスワード自体と同じくらい強いことを忘れないでください—大文字と小文字、数字、記号が混在した最低12文字のパスフレーズを使用してください。また、PBKDF2は新しいシステムではArgon2のような新しいアルゴリズムに大きく取って代わられていますが、既存のインフラストラクチャで広く使用・サポートされています。本番環境での長期的なパスワード保存については、OWASPガイドラインを確認し、ハードウェアが進化するにつれて反復回数を調整することをお勧めします。

よくある質問

コード実装

import bcrypt

# Hash a password (cost factor 12)
password = "my_secure_password"
hashed = bcrypt.hashpw(password.encode(), bcrypt.gensalt(rounds=12))
print("Hash:", hashed.decode())
# $2b$12$...

# Verify a password
is_valid = bcrypt.checkpw(password.encode(), hashed)
print("Valid:", is_valid)  # True

is_invalid = bcrypt.checkpw(b"wrong_password", hashed)
print("Invalid:", is_invalid)  # False

# The salt is embedded in the hash — no need to store it separately
# Always use checkpw() for comparison (constant-time)

Comments & Feedback

Comments are powered by Giscus. Sign in with GitHub to leave a comment.