Toolonit
  1. ホーム
  2. 暗号化
  3. Argon2ハッシュ

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ハッシュを生成・検証する方法

  1. パスワードを入力します。入力に合わせてハッシュが表示され、端末でかかった時間もわかります。
  2. プリセットを選ぶか、サーバーに合わせてメモリ、反復回数、並列度を設定します。
  3. PHC文字列、または生のハッシュとソルトをhexでコピーします。
  4. 保存済みのハッシュを照合するには、「パスワードとハッシュを照合」にハッシュとパスワードを貼り付けます。「一致」か「不一致」が表示されます。

主な機能

  • 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の設定など)は、ここでは作成も検証もできません。

関連ツール