我无法弄清楚为什么以下两个文件会产生不同的哈希值(SHA1、CRC32、SHA384 等等):
https://cdn.jsdelivr.net/npm/[电子邮件保护]/dist/jsonify-error.js
https://cdn.jsdelivr.net/npm/[电子邮件保护]/dist/jsonify-error.js
到目前为止,我尝试了几种差异实用程序,但它们都声称文件是相同的。
我下载了两个文件,并用 Sublime Text 3 和 Visual Studio Code 对它们进行了检查,它们似乎都是 UTF-8、CRLF,但当我打开第一个文件并按下 Ctrl+S(不做任何更改!)时,它的哈希值就会变为与第二个文件相同。
这里发生了什么事?
编辑以澄清:我想知道文件之间有什么不同。我知道这是带有空格字符或行尾的东西,但是什么?哪一行?在哪里?哪个字符?
答案1
v1.2.1 中的第 1 行以 linux EOL 结束,而 ver 1.2.2 中的同一行以 windows 行结尾。
(Linux 使用 0x0A 字符作为行分隔符,而 Windows 使用 0x0D,0x0A)
3、4、59、60 和 61 行也同样如此。
用于发现该问题的工具是 WinMerge。