c# -没有元数据的MS Office文档的散列内容

本文关键字:文档 Office MS 元数据 | 更新日期: 2023-09-27 17:52:55

我正在尝试识别具有重复内容的文件。决定使用哈希机制(MD5, SHA1或任何其他)进行比较。适用于"。txt"文件。但是,对于MS Office文件(.doc,.docx,.xls等),此操作失败。

MD5/SHA1哈希值对于MS Office文件不是恒定的,即使它们具有相同的"文本"内容。我假设MS Office在文件中存储了某种元数据,每次保存文件时都会发生变化。因此哈希值是不同的。

。我有一个文件ABC.doc,我为它计算哈希值(Hash1)。打开并更改1个单词并保存文件。撤销所做的更改,保存并计算哈希值(Hash2)。在本例中,Hash1 != Hash2。如果你在一个"。txt"文件

上尝试这个也是一样的

是否有一种方法来删除基于散列其内容的MS Office文档?我们能否只对文件的内容进行哈希,而不对其元数据进行哈希?

c# -没有元数据的MS Office文档的散列内容

我认为如果不使用工具提取文档的文本,然后对文本进行散列处理,就无法做到这一点。我可以推荐现在由Oracle拥有的Stellent Outside In。但对于你的需求来说,这可能是一种过度的解决方案。他们提供了一个工具来从许多类型的文件中提取文本,包括所有的办公文件和版本。