C# - 的MS Office文档的Hash内容没有元数据(C# - Hash contents o

2019-10-19 16:00发布

我试图找出重复的内容的文件。 决定做使用散列机构(MD5,SHA1或任何其他)的比较。 正常工作与名为“.txt”文件。 然而,与MS Office文件(.DOC,.DOCX,.xls的,等等)失败。

MD5 / SHA1哈希不是MS Office文件不变,即使它们具有相同的“文本”的内容。 我认为微软Office存储文件,每次保存的文件,它改变某种元数据。 因此,散列是不同的。

例如,我有一个文件ABC.doc,我计算它的哈希(HASH1)。 打开并更改1个字,并保存文件。 撤消你所做的更改,保存和计算散列(HASH2)。 HASH1!= HASH2在这种情况下。 如果你尝试这种在名为“.txt”文件是相同的

有没有办法去欺骗基于散列的内容MS Office文档? 我们可以散列只有文件的内容,而不是它的元数据?

Answer 1:

我不认为这可以在不使用工具提取文件的文本,然后散列文本来完成。 我可以推荐Stellent公司由外而内,现在属于Oracle。 但是,这可能是矫枉过正的解决您的需求。 他们提供了一个工具,从多种类型的文件,包括所有的办公室文件和版本提取文本。



文章来源: C# - Hash contents of MS Office documents without metadata