Argon2検証ツール
パスワードがArgon2ハッシュと一致するか確認します。パスワードと、$argon2id$v=19$m=65536,t=4,p=1$のようなPHC文字列を貼り付けると、バリアント、メモリ、反復回数、レーン数、ソルトを読み取り、ハッシュを再計算して、一致するかどうかを回答します。Argon2id、Argon2i、Argon2dのバージョン19に対応し、最大64 MiB、4回の反復、8レーンまで利用できます。パスワードを表示することはありません。
よくある質問
Argon2の検証はどのように行われますか?
このツールはPHC文字列を解析し、バリアント、バージョン、メモリ、反復回数、並列度、ソルトを取得します。次に、その設定を正確に使ってパスワードをハッシュ化し、結果を保存済みのハッシュと比較します。
どのハッシュを確認できますか?
このツールでは、PHC文字列形式のバージョン19(0x13)のArgon2id、Argon2i、Argon2dのハッシュを確認できます。これらはPHP password_hash、libsodium、argon2-cffi、Node.js argon2パッケージ、このサイトのArgon2 Generatorで生成できます。
利用上限はありますか?
ハッシュで使用できるメモリは最大64 MiB(m=65536)、反復回数は4回、レーン数は8です。この上限なら、PHPのデフォルト設定m=65536,t=4,p=1とargon2-cffiのデフォルト設定m=65536,t=3,p=4に対応できます。上限を超える設定のハッシュは、理由を説明して拒否されます。
公開されているサンプルで試せますか?
リファレンス実装のテスト用ハッシュ$argon2id$v=19$m=65536,t=2,p=1$c29tZXNhbHQ$CTFhFdXPJO1aFaMaO6Mm5c8y7cJHAph8ArZWb2GRPPcは、ソルトがsomesalt、パスワードがpasswordの場合のものです。両方を入力すると、一致と表示されます。
ハッシュが無効として拒否されるのはなぜですか?
文字列は$argon2id$、$argon2i$、$argon2d$のいずれかで始まり、続けてv=19、m、t、pの順にカンマで区切られた値、最後にBase64ソルトとハッシュを含む必要があります。空白、引用符、または一部が欠けた状態でコピーされたハッシュは拒否されます。v=部分のない古いバージョン16のハッシュには対応していません。
パスワードは秘密に保たれますか?
はい。レスポンスに含まれるのは、回答と入力したハッシュだけで、パスワードは含まれません。何も保存・記録されません。
「不一致」と表示された場合、ハッシュが壊れているということですか?
通常は、末尾の空白や大文字・小文字の違いなど、パスワードが異なることを意味します。システムによっては、ハッシュ化の前にペッパーや秘密鍵を追加する場合もありますが、この検証ツールでは把握できません。
確認にはどのくらい時間がかかりますか?
確認にかかる処理時間はハッシュの作成と同程度で、通常、前述の上限内であれば1秒を大きく下回ります。そのため、非常に大きなメモリ設定は拒否されます。
このツールはlibsodiumのハッシュに対応していますか?
はい。libsodiumのcrypto_pwhash_strはArgon2idのPHC文字列を書き出します。インタラクティブプリセットは64 MiBと2回の反復を使うため、ここで検証できますが、moderateとsensitiveのプリセットは64 MiBの上限を超えます。
ここでbcryptハッシュを確認できますか?
いいえ。$2a$、$2b$、$2y$で始まるハッシュには、Bcrypt Verifierをお使いください。