# 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のハッシュも検証できます。

ここに広告を掲載しませんか？

[メールでお問い合わせ](mailto:hi@dennn.is?subject=OneClick%20Pro%E3%81%A7%E3%81%AE%E5%BA%83%E5%91%8A%E6%8E%B2%E8%BC%89)

[広告 WordPress向けのエージェント対応プラグインスイート。](https://sleekwp.com/?ref=oneclickpro)
