Argon2ハッシュ生成・検証ツール
最新のパスワードハッシュ標準Argon2idで、パスワードをハッシュ化・検証します。
パスワードをハッシュ化
パスワードを入力すると、ここにハッシュが表示されます。
パラメーター
ハッシュ内ではm=19456(KiB)
メモリのレーン数です。ここでは順番に計算しますが、サーバーでは並列に実行されることがあります。ハッシュが変わるため、サーバーに合わせてください。
ハッシュごとに新しいランダムな16バイト。
パスワードとハッシュを照合
$argon2id$・$argon2i$・$argon2d$で始まるPHC文字列。パラメーターはここから読み取ります。
パスワードとハッシュを入力すると、照合します。
Argon2は、Password Hashing Competitionで優勝し、RFC 9106で標準化されたパスワードハッシュです。意図的に遅く、大量のメモリを使うよう設計されているため、GPUでパスワードを推測するコストが高くなります。このページでは、指定したパラメーターでArgon2ハッシュを作り、パスワードライブラリが保存するPHC文字列($argon2id$v=19$m=…,t=…,p=…$salt$hash)と生のhexで出力します。既存のPHC文字列とパスワードを照合することもできます。ブラウザ内で動作するため、パスワードが端末の外に出ることはありません。無料で登録も不要です。
Argon2ハッシュを生成・検証する方法
- パスワードを入力します。入力に合わせてハッシュが表示され、端末でかかった時間もわかります。
- プリセットを選ぶか、サーバーに合わせてメモリ、反復回数、並列度を設定します。
- PHC文字列、または生のハッシュとソルトをhexでコピーします。
- 保存済みのハッシュを照合するには、「パスワードとハッシュを照合」にハッシュとパスワードを貼り付けます。「一致」か「不一致」が表示されます。
主な機能
- Argon2id(初期設定)・Argon2i・Argon2d、バージョン19
- プリセット:OWASP最小(19MiB、t=2、p=1)、RFC 9106低メモリ(64MiB、t=3、p=4)、高(256MiB、t=3、p=4)
- メモリ1MiB〜1GiB、反復回数1〜16、並列度1〜16、ハッシュ長4〜128バイト
- ランダムな16バイトのソルト、またはテキスト・hex・Base64で指定する任意のソルト(8〜1024バイト)
- PHC文字列と、hexの生のハッシュとソルト。それぞれに「コピー」ボタン付き
- $argon2id$・$argon2i$・$argon2d$の文字列(v=19またはv=16)を、ハッシュからパラメーターを読み取って検証
プライバシーは守られますか?
はい。Argon2はブラウザ内のWebAssemblyにより、バックグラウンドのワーカーで動作し、ソルトはブラウザの安全な乱数生成器で作られます。パスワードがアップロードや保存されることはありません。
よくある質問
Argon2id・Argon2i・Argon2d、どれを使えばいいですか?
Argon2idを使ってください。RFC 9106もOWASPもパスワード用に推奨しており、Argon2iのサイドチャネル攻撃への耐性と、Argon2dのGPUによる解読への耐性を兼ね備えています。ほかの方式は、既存のシステムに合わせる場合にだけ選びます。
メモリ、反復回数、並列度はどう設定すればいいですか?
OWASPが示すArgon2idの最小値は、19MiB・反復2回・レーン1です。RFC 9106は、メモリが限られる場合に64MiB・反復3回・レーン4を提案しています。メモリを増やすほど保護は強くなります。1回のハッシュにかかる時間が、サーバーが1回のログインにかけられる時間に達するまで上げてください。
Argon2とbcrypt、どちらがいいですか?
新しいシステムならArgon2idです。どちらも意図的に遅いハッシュですが、Argon2は大量のメモリも必要とするためGPUでの解読コストが高く、72バイトのパスワード制限もありません。bcryptはより古く、ほぼどこでも使えるので、Argon2が使えない環境では今でも妥当な選択です。
$argon2id$のPHC文字列とは何ですか?
Argon2のリファレンス実装がハッシュを保存する形式で、方式、バージョン(v=19)、KiB単位のメモリ(m)、反復回数(t)、レーン数(p)に続けて、パディングなしのBase64でソルトとハッシュが並びます。ここで作った文字列は、同じ入力に対してリファレンスライブラリ(libargon2)が出力するものと1文字も違わず、libsodiumのcrypto_pwhash_str_verifyでも受け入れられます(Argon2idとArgon2iで、ハッシュが16バイト以上の場合)。
1GiBを超えるメモリを使えないのはなぜですか?
ハッシュはブラウザのタブの中で計算されますが、そこではWebAssemblyのメモリに制限があり、1回の確保で2GiBには届かず、スマホではもっと少ない量でも断られることがよくあります。そのためこのページは1GiBまでとしており、それ以上を求めるハッシュ(RFC 9106の2GiBの設定など)は、ここでは作成も検証もできません。