请查看以下问题。
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中使用免费软件来计算哈希值。
答案 0 :(得分:3)
那么,是因为pdf阅读器编码文本和元数据的方式,哈希是不同的还是类比本身是错误的?
正确。如果您需要在自己的数据上进行测试,请在文本编辑器中打开任何PDF(我使用Notepad ++)并滚动到底部(存储元数据的位置)。你会看到类似于:
的东西<</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的校验和。