我有两个 Excel 文件保存在不同的位置。一种是直接从浏览器下载,另一种是使用selenium驱动下载。我手动检查了这两个文件,两者完全相同。但是为两个文件生成的 MD5 哈希值有所不同。如何解决这个问题。
MD5是一种散列函数。人们使用散列函数来验证文件、流或其他资源的完整性。当涉及到哈希函数时,当您验证文件的完整性时,您是在位级别验证文件是否相同。
这样做的后果是,当您将文件与按位级别的完整性约束进行比较时,哈希函数可以完美地工作。
但是,考虑到 Excel 电子表格的性质。如果在按位级别上从文档中添加、删除或移动了一位,那么该文件的哈希值将完全不同。(并不总是如此,但不用担心。)
由于 Excel 的驱动程序与 selenium 使用的驱动程序有很大不同,特别是考虑到 selenium 可能对文件进行压缩和其他更改/优化,那么,当然,哈希值将会不同。
我的建议:首先:将文件拉入diff并找出这两个文件之间的不同之处。如果两个文件的哈希值不同,那么这些文件也不同,这几乎是(但不完全)公理。
其次:编写一个驱动程序来比较这些电子表格中的信息以验证文档的完整性(并且您可以获取该信息的哈希值),而不是按位验证文件。
我建议将两者导出为 CSV 并逐行比较两者。
| 归档时间: |
|
| 查看次数: |
9152 次 |
| 最近记录: |