UTILS.
100% ブラウザ内で完結
🛡️

Argon2 パスワードハッシュ生成・検証ツール

メモリ、反復回数、並列度を設定してArgon2id/i/dパスワードハッシュを計算するか、PHCエンコードされたハッシュとパスワードを照合します。クライアントサイド。

パスワードは100%ブラウザ内でハッシュ化されます——何もアップロードされません。

— ここに結果が表示されます —

このツールについて

Argon2 パスワードハッシュ生成・検証ツールは、Argon2ハッシュを完全にブラウザ内で計算・検証します。Argon2は2015年のパスワードハッシュコンペティションで優勝し、RFC 9106で標準化されています。bcryptと異なりメモリハードで、そのコストがRAM使用量に支配されるため、GPUやASICのクラッキング装置を妨げます。生成モードはcrypto.getRandomValuesから16バイトのランダムなソルトを引き、選んだバリアントをパラメーターとともに実行します:t 反復回数(時間コスト)、m メモリ(KiB)、p 並列度(レーン)、出力ハッシュ長(バイト)。

3つのバリアントが提供されます。Argon2id(デフォルトかつRFC推奨の選択)はサイドチャネル攻撃と時間メモリトレードオフ攻撃の両方に耐えるハイブリッドです。Argon2iはサイドチャネル漏洩に対して最適化され、Argon2dはGPUクラッキングへの耐性を最大化しますがサイドチャネル安全ではありません。結果は $argon2id$v=19$m=65536,t=3,p=1$<base64 salt>$<base64 hash> という形式の自己記述的なPHC文字列で、検証に必要なすべてのパラメーターがハッシュ内に含まれます。デフォルト(t=3、m=65536 KiB = 64 MiB、p=1)はRFC 9106の第2推奨プロファイルに従います。

作業はブラウザの厳格なセキュリティポリシーの下でeval不使用のWebAssemblyビルドとして実行されるため、メモリはページ内で割り当てられます:非常に高い m 値はRAMを大量に消費し、スマートフォンでは遅くなることがあるため、ツールは256 MiBを超えると警告します。検証モードはエンコードされたハッシュからバリアント、バージョン、m/t/p、ソルト、ダイジェストを解析し、候補パスワードで再計算して、一致か不一致かを報告します。パスワードは100%ブラウザ内でハッシュ化され、何もアップロードされません。

よくある質問

どのArgon2バリアントを使うべきですか?
Argon2idはデフォルトで、パスワードハッシュに対するRFC 9106の推奨です——Argon2iのサイドチャネル耐性とArgon2dのGPUクラッキング耐性を融合します。データに依存しないメモリアクセスが特に必要な場合のみArgon2iを、サイドチャネルリスクのない環境でのみArgon2dを使ってください。
メモリ、反復回数、並列度の設定は何をしますか?
メモリ(m、KiB)はハッシュが埋めるRAMで、主なコスト要因です。反復回数(t)はそのメモリを何回走査するかです。並列度(p)は同時に計算されるレーンの数です。mとtが高いほど強く遅いハッシュになり、デフォルトはm=65536(64 MiB)、t=3、p=1です。
なぜ高いメモリ設定は遅い、または応答しないのですか?
Argon2はブラウザ内で実際に要求されたメモリを割り当てるため、1 GiB(1048576 KiB)のような値は低RAMデバイスで停止または失敗することがあります。ツールは256 MiBを超えると警告します。生成がハングする場合は m を下げてください。いずれにせよパラメーターはハッシュに保存されます。
ハッシュには検証に必要なすべてが含まれていますか?
はい。PHCエンコードされた出力にはバリアント、バージョン、m/t/pパラメーター、ソルト、ダイジェストが埋め込まれているため、検証にはパスワードとその1つの文字列だけが必要です。何もどこにも送信されません——ハッシュ化も検証もWebAssemblyでローカルに実行されます。

その他のツール