コンテンツへスキップ

Argon2生成ツール

ランダムな16バイトのソルトを使い、メモリ、反復回数、並列度、ハッシュ長を指定してArgon2idパスワードハッシュを生成します。メモリは最大64 MiB、反復回数は最大4回です。デフォルトはOWASPの基準である19 MiB、2回に設定されています。このツールは$argon2id$v=19$で始まる標準のPHC文字列を返し、PHP、libsodium、argon2ライブラリで検証できます。パスワードが表示されることはありません。

リセット

よくある質問

Argon2とは何ですか?

Argon2は2015にPassword Hashing Competitionで優勝し、RFC 9106で規定されています。Argon2idはサイドチャネル攻撃とGPU攻撃の両方に耐性を持つハイブリッド方式です。パスワード保存には、OWASPとRFCがこの方式を推奨しています。

メモリ、反復回数、並列度の設定は何を意味しますか?

メモリは各ハッシュで使用するMiB数、反復回数はそのメモリ上で処理を繰り返す回数、並列度はレーン数を指定します。メモリと反復回数を増やすと、攻撃者がパスワードを推測するコストが高くなります。このツールでは、メモリは1~64 MiB、反復回数は1~4回、並列度は1~4に設定できます。

どの設定を使えばよいですか?

デフォルトは19 MiB、反復回数2回、レーン数1で、Argon2idにおけるOWASPの最小値です。PHPのデフォルトは64 MiB、反復回数4回で、ここでも同じ設定を再現できます。本番環境では、ログイン1回あたりにサーバーが割り当てられる範囲で、できるだけ多くのメモリを使用してください。

メモリと反復回数に上限があるのはなぜですか?

各ハッシュは指定した量のメモリを実際に割り当て、共有サーバー上で各パスを実行します。上限を64 MiB、4回にすることで、一般的な本番環境の設定に対応しつつ、各リクエストの処理を1秒未満に抑えています。

出力文字列には何が含まれますか?

$argon2id$v=19$m=19456,t=2,p=1$の後にソルトとハッシュが続く形式の結果には、方式、バージョン、KiB単位のメモリ量、反復回数、レーン数が記載されています。ソルトとハッシュはパディングなしのBase64で表されます。検証時にはすべてのパラメーターが読み取られるため、文字列全体を保存してください。

ハッシュが毎回異なるのはなぜですか?

リクエストごとに新しいランダムな16バイトのソルトを使うため、同じパスワードでも毎回異なる文字列が生成されます。正しいパスワードを使えば、どの文字列も正しく検証できます。

ハッシュ長を選べますか?

はい。16~64バイトから選択でき、デフォルトは32バイトです。タグを長くしても推測は難しくならないため、パスワードの保存には32バイトで十分です。

これらのハッシュを受け入れるシステムはどれですか?

PHP password_verify、libsodiumのcrypto_pwhash_str_verify、Node.js用のargon2パッケージ、Python用のargon2-cffi、Spring SecurityはいずれもPHC文字列形式を読み取ります。このサイトのArgon2 Verifierも検証できます。

パスワードは保存または返却されますか?

いいえ。パスワードはハッシュの計算中にメモリ上でのみ使用され、レスポンスから除外されます。ログに記録されたり、保存されたりすることはありません。

Argon2iまたはArgon2dのハッシュを生成できますか?

いいえ。このツールは、パスワードに推奨されるバリアントであるArgon2idのみを生成します。Argon2 Verifierでは、Argon2iとArgon2dのハッシュも検証できます。

OneClick Proについて

OneClick Proは、日々の作業に役立つ150以上のウェブツールを集めた無料コレクションです。画像や単位の変換、コードの整形と検証、ドメインやSEOの確認、テキスト、日付、数値の処理などに利用できます。すべてのツールは登録やサブスクリプションなしで使えます。入力した内容は結果の計算にのみ使用され、保存されることはありません。単発の作業に使える便利なツールボックスとして、または毎日使うツールをブックマークしてご活用ください。