用哈希比较两段文本
请输入要哈希的文本。
两段较长的字符串,只有摘要完全相同时才算一致。用相同算法分别对每段文本进行哈希,再比较两个较短的值即可。只要有一个字符、空格或换行不同,结果就会完全不同。
如何检查两段文本是否一致
-
1
对第一段文本进行哈希
粘贴第一段文本,保持 SHA-256 选中并生成。复制或记下摘要。
-
2
用第二段文本重新开始
将文本替换为第二个版本,并使用相同的算法。
-
3
比较两个摘要
如果 64 个字符完全相同,说明两段文本的字节一致。只要有任何字符不同,文本也就不同。
-
4
必要时缩小范围
如果不一致,请对两段文本的较小部分进行哈希,找出发生变化的段落。
为什么哈希是可靠的比较方式
优秀的哈希函数会将每个不同的输入映射为不同且不可预测的摘要。对于 SHA-256,目前没有已知的方法能找到两段不同文本具有相同摘要。因此,摘要相同在实际应用中就意味着内容相同。摘要又很短,你只需比较 64 个字符,而不必比较整页内容。
实例
| 文本 | SHA-256 |
|---|---|
| hello | 2cf24dba5fb0a30e26e83b2ac5b9e29e1b161e5c1fa7425e73043362938b9824 |
| Hello | 185f8db32271fe25f561a6fc938b2e264306ec304eda518007d1764826381969 |
这两段文本只相差一个大写字母,但它们的摘要看不出任何相似之处。这使得即使是最细微的编辑也一目了然。
什么算作差异
比较是逐字节进行的。以下任何情况都会改变摘要:
- 行尾多出的空格;
- 文本末尾的换行;
- 屏幕上看起来相同、实际是不同字符的引号或破折号;
- 看起来相同但输入方式不同的带重音字母,例如字母加上独立的重音符号,与合成为单个字符。
如果两段文本看起来一样但摘要不同,最可能的原因就是这些看不见的差异之一。分别带上和去掉末尾换行进行哈希,很快就能找到原因。
选择算法
两段文本应使用相同的算法。SHA-256 是安全的默认选择。MD5 和 SHA-1 也能发现普通的差异,但如果有人可能刻意构造碰撞,就不应使用。CRC32 更短,但在大规模数据上较弱。
请注意,本工具会在完整列表中显示你所哈希文本的所有摘要,因此一次操作就能比较多种算法。
实用工作流程
把原始文本的摘要保存在笔记或工单中。当新版本送来时,用相同算法进行哈希并比较。这种方法很适合配置片段、合同条款、法律文字和模板文本等需要证明内容未被更改的场景,而不是要列出所有改动。
摘要不同时
不要先假定内容有误。先检查常见原因:复制的文本可能带有末尾空格、不同的换行风格,或来自网页或文字处理软件的隐藏字符。用相同的方式清理两个版本后再进行哈希。如果摘要仍然不同,就把每段文本拆分成段落,逐段哈希,并成对比较,直到找出发生变化的那一段。
常见问题
使用 SHA-256 或 SHA-512 时,实际应用中可以认为是一样的。使用 MD5、SHA-1 或 CRC32 时,哈希一致是意外错误的有力证据,但不足以防范蓄意构造的碰撞。
重要。相同的行如果顺序不同,字节顺序也不同,因此摘要会不同。
不能。它一次只对一段文本进行哈希,你需要自己比较摘要。它也不会高亮显示差异。
算。Hello 和 hello 的摘要不同。如果大小写不重要,请先把两段文本统一为相同的大小写。
相关工具
维吉尼亚密码编码器
使用密钥,用经典的维吉尼亚密码对消息进行加密和解密。移位拉丁字母 A-Z,并保留大小写、空格和标点。
随机API密钥生成器
在服务器上生成8–128字符的十六进制、base64url或字母数字API密钥,也可生成UUIDv4。
Wei 转 Ether 转换器
以精确算术将 Wei 转换为 Ether(ETH),不产生浮点舍入误差。1 ETH = 10^18 Wei。
编码与密码格式识别器
检查字符串是否具有 Base64、十六进制、二进制、摩斯电码、bcrypt 或类 JWT 结构,了解重叠匹配及各项线索的局限。
波利比奥斯密码编码器
用固定的 5×5 I/J 方阵将拉丁字母编码为波利比奥斯坐标,或解码以空格分隔的坐标对。
RSA密钥对生成器
生成符合PEM格式的新RSA公钥与私钥对。为 JWT 签名、SSH或TLS协议选择2048位、3072位或4096位密钥。
此工具还提供其他语言版本
- مقارنة نصين باستخدام التجزئة [AR]
- ハッシュで 2 つのテキストを比較 [JA]
- Zwei Texte mit einem Hash vergleichen [DE]
- Jämför två texter med en hash [SV]
- Compare dois textos com um hash [PT]
- 해시로 두 텍스트 비교하기 [KO]
- Comparer deux textes avec un hash [FR]
- Twee teksten vergelijken met een hash [NL]
- เปรียบเทียบข้อความสองชุดด้วยแฮช [TH]
- So sánh hai văn bản bằng mã băm [VI]
- Comparar dos textos con un hash [ES]
- Porównaj dwa teksty za pomocą skrótu [PL]
- Bandingkan Dua Teks dengan Hash [ID]
- Compare Two Texts With a Hash [EN]
- Confrontare due testi con un hash [IT]
- Сравнение двух текстов по хешу [RU]
- Hash ile İki Metni Karşılaştırın [TR]