Argon2ハッシュ照合|パスワードとエンコード済みハッシュを比較

パスワードと既存のArgon2エンコード済みハッシュ($argon2id$...)を入力して一致するか照合します。計算はすべてブラウザ内で完結し、入力内容はサーバーに送信されません。


Argon2ハッシュ照合のヒント

  • 照合には、Argon2ハッシュ計算ツールで生成したエンコード済みハッシュ($argon2id$ から始まる文字列)をそのまま貼り付けてください。
  • エンコード済みハッシュにはバリアント・メモリコスト・反復回数・ソルトの情報がすべて含まれているため、照合時にこれらのパラメータを別途指定する必要はありません。
  • ハッシュの形式が不正な場合(コピー時の欠落・改行の混入など)はエラーメッセージが表示されます。全文を正確にコピーしているか確認してください。
  • 一致しない結果が出た場合、パスワードの大文字・小文字や前後の空白文字が意図せず含まれていないか確認してください。

よくある質問

ハッシュ計算はパスワードから新しいハッシュ値を生成するのに対し、照合は既存のハッシュ値とパスワードが一致するかどうかを判定する処理です。新規登録時にハッシュを生成・保存し、ログイン時には照合のみを行うのが一般的な使い分けです。

入力したハッシュが $argon2id$・$argon2i$・$argon2d$ のいずれかで始まる正しいエンコード形式になっていない場合に表示されます。コピー時に文字が欠けていないか、前後に余分な空白や改行が含まれていないかを確認してください。

大文字・小文字の違い、全角・半角の違い、前後の空白文字の混入などが主な原因です。パスワードは1文字でも異なると一致しないため、コピー元の文字列を再確認してください。

いいえ。入力内容はすべてブラウザ内のWebAssemblyで処理され、サーバーへの送信や保存は一切行われません。

対になるArgon2ハッシュ計算ツールをご利用ください。Argon2id・Argon2i・Argon2dの3方式に対応しています。
ツールくん

余談ですが ― なぜパスワードは「ハッシュを比較」するだけで照合できるのか

パスワードの照合は、一見すると「保存されているパスワードと入力されたパスワードを直接比較する」処理に思えますが、実際にはまったく異なる仕組みで行われています。サーバー(あるいはこのツールのようなクライアント側処理)は、入力されたパスワードを保存時と同じアルゴリズム・同じソルトで再度ハッシュ化し、その結果が保存済みのハッシュ値と一致するかどうかだけを比較します。元のパスワード自体は一度も「比較」の対象にならず、ハッシュ同士の一致判定だけで済むのがこの方式の利点です。

この仕組みが成り立つのは、Argon2のようなハッシュ関数が「決定的」(deterministic)であるためです。同じ入力・同じソルト・同じパラメータであれば、常に同じ出力が得られます。エンコード済みハッシュ文字列($argon2id$v=19$m=...$salt$hash の形式)には、計算時に使われたソルトとパラメータがすべて埋め込まれているため、照合時に元のパラメータを別途指定する必要がなく、ハッシュ文字列だけで完全な再計算が可能になっています。

この「一方向性」(ハッシュから元のパスワードを逆算できない)と「決定性」(同じ入力なら同じ出力)の2つの性質があるからこそ、サービス運営者はユーザーの生のパスワードを一切保存せずに、ログイン時の照合を安全に行えます。もしデータベースが漏洩しても、攻撃者が手に入るのはハッシュ値だけであり、Argon2のような計算コストの高いアルゴリズムであれば、元のパスワードを復元する総当たり攻撃には非常に長い時間がかかります。