パスワードハッシュツール
OWASP推奨の設定とランダムなソルトで、Argon2id、bcrypt、scrypt、PBKDF2のパスワードハッシュを生成。保存済みハッシュとの照合もできます。
クリックするたびに 16 バイトの新しいランダムなソルトが生成されるため、ハッシュは毎回変わりますが、どれも検証に通ります。設定は OWASP Password Storage Cheat Sheet に従っています。エンコード済み文字列全体を保存してください。アルゴリズム、パラメーター、ソルト、ハッシュがすべて含まれます。
パスワードをハッシュと照合
すべてブラウザ内で実行されます。データがアップロードされることはありません。
パスワードハッシュツールとは?
OWASP Password Storage Cheat Sheet の最小設定と、毎回新しいランダムなソルトを使って、保存に使えるパスワードハッシュをワンクリックで生成します。内蔵の照合機能で、bcrypt、Argon2、scrypt、PBKDF2のハッシュ文字列に対してパスワードを確認できます。
パスワードハッシュツールの使い方
- パスワード欄にパスワードを入力します。
- アルゴリズムを選びます。Argon2idが推奨です。
- ハッシュ化をクリックして、エンコード済みハッシュをコピーします。
- パスワードを確認するには、パスワードをハッシュと照合にハッシュを貼り付け、パスワードを入力して照合をクリックします。
例
Password hunter2, Argon2id
$argon2id$v=19$m=19456,t=2,p=1$ojaAuqtpNZXLTJQVRP8teg$52egAc/OkuGZUe+ByQP/IxYP4pL6RNdbCi6tx97q308
ソルトはランダムなので毎回異なる文字列になりますが、どれも照合に成功します。
パスワードハッシュツールを使うべき場面
テスト用データの作成、管理者アカウントの初期登録、ハッシュ形式の確認、デバッグ中のパスワードとハッシュの照合に使います。本番環境では、サーバー側でメンテナンスされているライブラリを使ってパスワードをハッシュ化してください。サーバーの代わりにクライアントでハッシュ化してはいけません。
パスワードハッシュツールの仕組み
Argon2id(m=19 MiB、t=2、p=1)、bcrypt(コスト12)、scrypt(N=2^17、r=8、p=1)は hash-wasm(WebAssembly)で計算され、反復回数600,000回のPBKDF2-HMAC-SHA-256はブラウザのWeb Crypto APIを使います。実行のたびに crypto.getRandomValues で16バイトの新しいソルトを生成します。出力形式は、bcryptが $2b$、ArgonがPHC文字列 $argon2id$v=19$m=…,t=…,p=…$salt$hash、scryptが $scrypt$ln=…,r=…,p=…$salt$hash、passlib形式の $pbkdf2-sha256$iterations$salt$hash です。照合は文字列を解析し、保存されたパラメータでハッシュを再計算します(定数時間の比較)。
一般的な使用例
- データベースの初期データ用の管理者パスワードのハッシュ作成
- 保存されたbcryptハッシュがパスワードと一致するかの確認
- 認証コードのテスト用データの生成
- 異なるアルゴリズムのハッシュ形式の比較
セキュリティ注意事項
すべての処理はブラウザ内で実行されます。共有PCでは、本番のパスワードハッシュを実際のパスワードと一緒に貼り付けないでください。
よくある質問
どのアルゴリズムを使うべきですか?
新しいシステムにはArgon2idです。プラットフォームがArgon2に対応していなければscryptまたはbcrypt、FIPS-140準拠が必要ならPBKDF2を使います。
ハッシュが毎回違うのはなぜですか?
ハッシュごとに新しいランダムなソルトを使うためです。ソルトはエンコードされた文字列の中に保存されるので、照合は問題なく機能します。
ハッシュを元に戻せますか?
いいえ。攻撃者にできるのはパスワードを推測して各推測をハッシュ化することだけで、これらの低速なアルゴリズムはそのコストを高くします。
どのハッシュ形式を照合できますか?
bcrypt($2a$、$2b$、$2y$)、ArgonのPHC文字列、$scrypt$文字列、passlibの$pbkdf2-sha1/sha256/sha512$、Djangoのpbkdf2_sha256$ハッシュです。