Hash pdf文件的md5校验和

Hash pdf文件的md5校验和,hash,md5,Hash,Md5,请看一下下面的问题 1 - Applying the MD5 on a .txt file containing "Hello" (without quotes, length = 5). It gives some hash value (say h1). 2 - Now file content are changed to "Hello " ( without quotes, length = 6). It gives some hash value (say h2). 3 - Now f

请看一下下面的问题

1 - Applying the MD5 on a .txt file containing "Hello" (without quotes, length = 5). It gives some hash value (say h1).
2 - Now file content are changed to "Hello " ( without quotes, length = 6). It gives some hash value (say h2).
3 - Now file is changed to "Hello" (exactly as step. 1). Now the hash is h1. Which makes sense.
现在,如果将该过程应用于.pdf文件,则会出现问题。在这里,我没有改变文件内容,而是改变了文本的颜色,并再次恢复到原始文件。通过这种方式,我得到了三个不同的散列值

那么,是因为pdf阅读器对文本和元数据进行编码的方式不同,哈希是不同的还是类比本身是错误的

信息:-在windows中使用免费软件计算哈希

那么,是因为pdf阅读器对文本和元数据进行编码的方式不同,哈希是不同的还是类比本身是错误的

对。如果需要对自己的数据进行测试,请在文本编辑器中打开任何PDF(我使用记事本++),然后滚动到底部(存储元数据的地方)。您将看到类似于:

<</Subject (Shipping Documents)
/CreationDate (D:20150630070941-06'00')
/Title (Shipping Documents)
/Author (SomeAuthor)
/Producer (iText by lowagie.com \(r0.99 - paulo118\))
/ModDate (D:20150630070941-06'00')
>>

显然,
/CreationDate
ModDate
至少会继续改变。即使您使用相同的源数据从某个源重新生成pdf,这些时间戳也会有意义地更改目标pdf的校验和

那么,是因为pdf阅读器对文本和元数据进行编码的方式不同,哈希是不同的还是类比本身是错误的

对。如果需要对自己的数据进行测试,请在文本编辑器中打开任何PDF(我使用记事本++),然后滚动到底部(存储元数据的地方)。您将看到类似于:

<</Subject (Shipping Documents)
/CreationDate (D:20150630070941-06'00')
/Title (Shipping Documents)
/Author (SomeAuthor)
/Producer (iText by lowagie.com \(r0.99 - paulo118\))
/ModDate (D:20150630070941-06'00')
>>


显然,
/CreationDate
ModDate
至少会继续改变。即使您使用相同的源数据从某个源重新生成pdf,这些时间戳也会有意义地更改目标pdf的校验和。

Hi,我猜想,pdf文件包含元数据,如上次编辑时间等,因此这将是构成哈希值Hi Kevln的文件的一部分,通常,时间信息作为文件元数据保存,即保存在单独的数据结构中(stat命令的输出)。在这里,原始文件被格式化,并再次更改为原始状态。因此,与格式有关的元数据应该被删除。这种理解正确吗?嗨,正如我所说的,这是一种猜测,我对PDF真的不太了解,也没有能力编写它们。但是,我刚刚在AdobeReaderV11和DocProperties(ctrl-D)中打开了一个随机文件,它给出了创建和修改时间。我猜您正在更改修改时间,该时间必须存储在PDF中的某个位置,从而更改哈希,即使实际的文本/格式还原为初始条件。在单词doc:MD5(polling.doc)=f22784408dc39c4727d58b448daee198上,将其放在一个空格中,然后backpac&save:MD5(polling.doc)=E84E71698AE2C4431075AE36C6A91DBC在这种情况下,word和adobe reader都在存储记事本没有的计时信息。这就是为什么差异是显而易见的。这似乎是正确的答案。嗨,作为一个粗略的猜测,我想说PDF文件包含元数据,如上次编辑时间等,这将是构成哈希值的文件的一部分。Hi Kevln,通常时间信息作为文件元数据保存,即在单独的数据结构中(stat命令的输出)。在这里,原始文件被格式化,并再次更改为原始状态。因此,与格式有关的元数据应该被删除。这种理解正确吗?嗨,正如我所说的,这是一种猜测,我对PDF真的不太了解,也没有能力编写它们。但是,我刚刚在AdobeReaderV11和DocProperties(ctrl-D)中打开了一个随机文件,它给出了创建和修改时间。我猜您正在更改修改时间,该时间必须存储在PDF中的某个位置,从而更改哈希,即使实际的文本/格式还原为初始条件。在单词doc:MD5(polling.doc)=f22784408dc39c4727d58b448daee198上,将其放在一个空格中,然后backpac&save:MD5(polling.doc)=E84E71698AE2C4431075AE36C6A91DBC在这种情况下,word和adobe reader都在存储记事本没有的计时信息。这就是为什么差异是显而易见的。这似乎是正确的答案。