テキストのSHAが一致すると、何が分かるのか

設定や文章を別のシステムへ移すとき、ハッシュは変更の確認に役立ちます。ただし両者が同じデータを対象とし、参照値の出所を信頼できることが前提です。

比較にはアルゴリズムの一致も必要

ハッシュ関数は固定長の値を作ります。両側で同じ方式を使ってください。SHA-256とSHA-512の結果は直接比較できません。

SHA-256は通常64桁の16進数で表示されます。入力が長くなっても値の長さは変わらず、元の内容を取り出せる圧縮コピーでもありません。

参考資料: MDN — SubtleCrypto.digest and fixed-length cryptographic digests

似て見える文章でもバイトは違う

末尾の空白、改行、符号化の違いで、見た目が似ていてもハッシュは変わります。実際に転送した内容を確認するなら、先に文章を整えないでください。

ToolRoofは入力をUTF-8として計算し、空白の削除やUnicodeの正規化はしません。対象は文章です。ファイル名を貼っても、そのファイルの内容を計算することにはなりません。

参照値の出所も確かめる

信頼できる参照値との一致は、比較した内容の整合性を判断する実用的な根拠です。それだけで著者の身元や内容が無害であることは証明できません。

内容と参照ハッシュを両方変えられる相手なら、一致したままにできます。出所を確認し、単なるSHAを電子署名や適切なパスワード保存方式の代わりにしないでください。

参考資料: MDN — SubtleCrypto.digest and fixed-length cryptographic digests

例:末尾の改行も入力の一部

末尾改行なしのRoofはUTF-8で4バイト、SHA-256の先頭はc2f6a4d9です。LFを1つ加えると5バイトになり、先頭は1e5a7f27に変わります。見た目が近くても同じデータではありません。

短い先頭部分は説明用です。実際はハッシュ全体を比較します。一致しないときは、改ざんと決める前に改行、空白、アルゴリズムを確認しましょう。

参考資料