You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

为何PDF的/ID字段与创建及最后修改日期不匹配?

PDF创建/修改日期匹配但/ID字段哈希不一致的原因

先澄清一个普遍误区:/ID数组的两个哈希值并非严格对应「文档创建时哈希」和「修改时哈希」。根据PDF规范,它的定义是:

  • 第一个哈希是文档首次生成时,基于文件内容+部分文件系统属性生成的唯一标识
  • 第二个哈希是文档最后一次保存时,基于当时的文件内容+对应属性生成的标识

但实际场景中,哪怕/CreationDate和/ModDate显示一致,/ID的两个哈希也可能不一样,常见原因有这几个:

  • 隐性内部结构变动:不少PDF编辑器在保存时,会自动做一些用户感知不到的优化——比如整理对象引用、清理冗余字典项、更新XMP元数据里的内部时间戳。这些改动不会修改trailer里的日期字段,但会改变文件二进制内容,直接导致第二个哈希值变化。
  • 无修改的「另存为」操作:用PDF阅读器的「另存为」功能时,很多工具会自动压缩文件、重构交叉引用表。就算你没改任何内容,这些操作也会改变文件的二进制结构,进而影响/ID的第二个哈希,但日期字段可能保持原样。
  • 日期字段被人为篡改:有人会手动修改trailer里的/CreationDate和/ModDate,把它们改成一致,但忘了同步修改/ID的哈希值。这种情况属于刻意的文档伪造,目的是让文档看起来没被改动过。
  • 工具实现差异:不同PDF工具对/ID哈希的生成逻辑有细微差别。有些工具生成第二个哈希时,参考的文件属性范围和第一个哈希不同,哪怕文档内容没变化,也可能出现哈希不一致,同时日期字段保持同步的情况。

说白了:日期字段只是可修改的元数据标记,而/ID的哈希是基于实际文件内容计算的。只要文件二进制有任何变动(哪怕是肉眼完全不可见的),第二个哈希就会变,和日期是否匹配没有强制绑定关系。

内容的提问来源于stack exchange,提问作者Melo

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.31 04:01:56