微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

java – 为什么MD5哈希值对于两个看起来相同的excel文件是不同的

我有两个excel文件保存在不同的位置.一个是从浏览器直接下载的,另一个是使用selenium驱动程序下载的.我手动检查了两个文件,两者完全相同.但是为这两个文件生成的MD5哈希值会有所不同.如何解决这个问题.

解决方法:

MD5是一种散列函数.人们使用散列函数来验证文件,流或其他资源的完整性.当涉及散列函数时,当您验证文件的完整性时,您将验证在位级别,文件是否相同.

这种情况的后果是,当您在按位级别比较具有完整性约束的文件时,散列函数可以完美地工作.

但是,鉴于Excel电子表格的性质.如果在按位级别上添加,删除或移动文档中的一位,那么该文件的哈希将完全不同. (并非总是如此,但不要担心.)

由于Excel的驱动程序与selenium使用的驱动程序完全不同,特别是在selenium可能对文件进行压缩和其他更改/优化的情况下,当然 – 哈希将会有所不同.

我的建议:
  首先:在diff中拉出文件,找出这两个文件间的区别.如果两个文件的哈希值不同,那么几乎(但不是很完全)不言而喻,那些文件也是不同的.

其次:编写一个驱动程序来比较这些电子表格中的信息,以验证文档的完整性(并且您可以获取该信息的哈希值),而不是按位级别验证文件.

我建议将两者都导出为CSV并逐行进行比较并比较两者.

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 [email protected] 举报,一经查实,本站将立刻删除。

相关推荐