ハッシュで 2 つのテキストを比較

ハッシュ化するテキストを入力してください。

2 つの長い文字列は、ダイジェストが同一である場合にのみ同一です。それぞれのテキストを同じアルゴリズムでハッシュし、2 つの短い値を比べてください。1 文字、スペース、改行が違うだけで、結果はまったく別になります。

2 つのテキストが一致するか確認する方法

  1. 1

    最初のテキストをハッシュ

    最初のテキストを貼り付け、SHA-256 を選んだまま生成します。ダイジェストをコピーするか、メモしておきます。

  2. 2

    2 つ目のテキストで再度実行

    同じアルゴリズムを使い、テキストを 2 つ目のバージョンに差し替えます。

  3. 3

    ダイジェストを比較

    64 文字がすべて同じなら、テキストは同じバイト列です。1 文字でも違えば、テキストも違います。

  4. 4

    必要に応じて絞り込む

    違いがある場合は、それぞれのテキストの小さな部分をハッシュして、変更された段落を特定します。

ハッシュが信頼できる比較方法である理由

優れたハッシュ関数は、異なる入力をそれぞれ異なる、予測できないダイジェストに変換します。SHA-256 では、異なる 2 つのテキストで同じダイジェストを作る既知の方法はありません。そのため、ダイジェストが一致すれば、実用上は内容が同一だと言えます。ダイジェストは短いので、ページ全体ではなく 64 文字を比べるだけで済みます。

具体例

テキスト SHA-256
hello 2cf24dba5fb0a30e26e83b2ac5b9e29e1b161e5c1fa7425e73043362938b9824
Hello 185f8db32271fe25f561a6fc938b2e264306ec304eda518007d1764826381969

2 つのテキストは大文字 1 文字だけ違いますが、ダイジェストには目に見える共通点がありません。そのため、わずかな編集でも明らかになります。

違いとして扱われるもの

比較はバイト単位で行われます。次のものはすべてダイジェストを変えます。

  • 行末の余分なスペース
  • テキスト末尾の改行
  • 画面上では同じに見える別の種類のアポストロフィやダッシュ
  • 同じ見た目でも入力方法が違うアクセント付き文字(基底文字と独立した結合記号の組み合わせと、合成済みの 1 文字)

2 つのテキストが同じに見えるのにダイジェストが違う場合、こうした目に見えない違いが原因である可能性が高いです。末尾の改行を付けた場合と付けない場合でハッシュすれば、すぐに確かめられます。

アルゴリズムの選び方

2 つのテキストには同じアルゴリズムを使ってください。SHA-256 は安全な標準です。MD5 と SHA-1 も通常の違いは検出できますが、誰かが意図的に衝突を作るおそれがある場合は使わないでください。CRC32 は短いものの、大量のデータに対しては弱くなります。

このツールは、ハッシュしたテキストについてのすべてのダイジェストを全一覧に表示するため、1 回の操作で複数のアルゴリズムを比べられることにも注意してください。

実際の作業の流れ

元のテキストのダイジェストを、メモやチケットに残しておきます。新しいバージョンが届いたら、同じアルゴリズムでハッシュして比べます。設定ファイルの断片、契約条項、法律文書、テンプレートの文面など、何も変わっていないことを証明する必要がある場合に有効です。変更点の一覧を作るのではなく、変わっていないことを示せます。

ダイジェストが違うとき

内容が間違っていると決めつけないでください。まずは基本的な原因を確認します。コピーしたテキストには、末尾のスペース、異なる改行コード、Web ページやワープロ由来の見えない文字が含まれていることがあります。両方を同じ方法で整えてから、再度ハッシュしてください。それでも違う場合は、各テキストを段落に分けてそれぞれハッシュし、ペアを比べていって変更された段落を見つけてください。

よくある質問

SHA-256 や SHA-512 であれば、実用上は同一と言えます。MD5、SHA-1、CRC32 の場合、一致は偶発的な誤りに対する強い証拠ですが、意図的に作られた衝突に対しては十分ではありません。

はい。同じ行でも順番が違えば、バイトの並びが異なるためダイジェストも異なります。

いいえ。一度に 1 つのテキストをハッシュするので、ダイジェストはご自身で比べてください。違いをハイライトする機能はありません。

はい。Hello と hello は異なるダイジェストになります。大文字小文字を区別しない場合は、先に両方を同じ大文字小文字に変換してください。

関連ツール

このツールは他の言語でも利用できます

使い方ガイドと活用例