Argon2プレイグラウンド

メモリ、反復回数、並列度、ソルト、シークレットを指定して、Argon2id・Argon2i・Argon2dのハッシュを計算。PHC文字列での出力と照合に対応しています。

メモリ 19 MiB

鍵付きハッシュ(Argon2 の K 入力)。エンコード済み文字列には保存されないため、検証時にも必要です。

Argon2(RFC 9106)は Password Hashing Competition の優勝アルゴリズムです。推奨は Argon2id、OWASP の最低値は m=19 MiB, t=2, p=1 です。ブラウザー内で hash-wasm(WebAssembly)により計算します。

パスワードをハッシュと照合

すべてブラウザ内で実行されます。データがアップロードされることはありません。

Argon2プレイグラウンドとは?

Password Hashing Competition の優勝アルゴリズムであるArgon2(RFC 9106)でパスワードをハッシュ化し、バリアント、反復回数、メモリ、並列度、ハッシュ長、ソルトのエンコード、任意のシークレットキーまで、すべてのパラメータを指定できます。結果は生の16進数と標準のPHC文字列で表示されます。

Argon2プレイグラウンドの使い方

  1. パスワードを入力し、バリアントを選びます(Argon2idを推奨)。
  2. 反復回数 (t)、メモリ (KiB)、並列度 (p)、ハッシュ長を設定します。
  3. ソルトをテキスト、16進数、Base64のいずれかで入力するか、空のままにして16バイトのランダムなソルトを使います。
  4. ハッシュ化をクリックし、エンコード済み文字列または生の16進数をコピーして、下のパネルで照合します。

例

入力
Password password, salt somesalt (text), Argon2id, t=2, m=65536, p=1, 32 bytes
出力
$argon2id$v=19$m=65536,t=2,p=1$c29tZXNhbHQ$CTFhFdXPJO1aFaMaO6Mm5c8y7cJHAph8ArZWb2GRPPc

リファレンスのargon2 CLIやargon2-cffiと同じ結果になります。

Argon2プレイグラウンドを使うべき場面

パラメータの調整、リファレンスベクターの再現、libsodium、argon2-cffi、PHPのpassword_hashなどのライブラリが生成したArgon2ハッシュのデバッグに使います。メモリ設定を大きくすると、スマートフォンでは遅くなったり失敗したりすることがあります。

Argon2プレイグラウンドの仕組み

Argon2は、BLAKE2bから導出したブロックでmKiBのメモリを埋め、そのメモリをt回走査します。アドレス指定はArgon2dではデータ依存、Argon2iではデータ非依存、Argon2idではそのハイブリッドです。出力は、パディングなしのBase64を使った $argon2id$v=19$m=…,t=…,p=…$<salt>$<hash> の形式にエンコードされます。計算はブラウザ内のhash-wasm(WebAssembly)で行われ、任意のシークレットは鍵付きハッシュの入力Kであり、文字列には含まれません。

一般的な使用例

  • サーバーのメモリと反復回数の設定の選定
  • Argon2のテストベクターの再現
  • 別のライブラリが生成したPHC文字列の照合
  • Argon2のパラメータがコストにどう影響するかの説明

よくある質問

OWASPはどのパラメータを推奨していますか?

Argon2idで、m=19 MiB以上、t=2、p=1、または m=46 MiB、t=1、p=1 のような同等のトレードオフです。

Argon2id、Argon2i、Argon2dのどれを使うべきですか?

パスワードのハッシュ化にはArgon2idです。Argon2dはサイドチャネル攻撃に弱く、Argon2iはGPUによるトレードオフ攻撃に対して弱くなります。

ここでは並列度を上げると速くなりますか?

いいえ。ブラウザはレーンを順番に計算します。ただしパラメータは結果を変えるため、サーバーで使う値と一致させる必要があります。

他のカテゴリを見る