2009-11-02 6772 views
4

我有一个由第三方系统生成的PDF。使用PDF编辑器或els软件,我修改了它。
是否可以检测出PDF文件是否被修改过,没有原始文件?如何检查PDF是否被修改

我会添加一些更多的细节。

没有加密和没有签名功能。

文档由IT系统创建。用户收到文件并修改它。

是否有可能以某种方式跟踪这种变化?

我认为所有这些应用程序都会在PDF标头或文件内编码的某个位置留下一些数据,并且可以对其进行检查。然而,由Windows资源管理器显示的属性什么也没有显示...所以我有兴趣,如果有一些比在浏览器中查看属性/标题更聪明。

回答

1

你可以随时检查pdf文件的md5sum。我不确定你使用的是什么环境,但这应该有助于你开始。

1

除非有加密或数字签名等安全特性应用于它,否则它听起来并不像原来的文件那样粗糙。你有权访问有关原始文件的任何信息吗?文件大小,创建日期,任何元数据等?

0

如果用于修改PDF的工具按照PDF规范工作,那么在Info字典中,它应该更新ModDate,但只保留CreationDate。您也可以在对象上看到一些非零代数,尽管所有对象都可以重新生成,因此它们将成为0代。试用版本CosEdit将允许您查看这两个项目。

但是,如果该工具已被用于故意修改PDF而不留下痕迹,那么他们将欺骗这些数据位,以免它们对您有所帮助。

0

用户是否使用Acrobat修改PDF?如果是这样,那么Danio上面提到的应该起作用。严格地说,修改PDF应该改变其ModDate或xmp:ModifyDate而不更改其CreationDate。然而并非所有工具都坚持这一点;不少人只是简单地保留所有的元数据,所以这种检查方法并不是100%可靠的,除非你知道你的用户使用什么PDF编辑器。

如果你的用户使用的编辑器确实改变了ModDate或xmp:ModifyDate,那么你应该能够在两个地方看到它。一种是在Acrobat中打开文档并按下Ctrl-D以查看文档属性。创建字段和修改字段应具有不同的时间戳。也可能有API可用于以编程方式检索此元数据。另一种可视化的方式是简单地在记事本中打开PDF并搜索属性。大部分文档都不可读,但这些时间戳应该是。如果他们确实得到了适当的改变,你可以随时在你的应用程序中解析它们。祝你好运!

1

这样做的问题是,只需在预览中打开Mac上的PDF,然后按Command-S保存文件即可替换创建日期和修改日期以匹配当前日期/时间。所以即使创建日期也是错误的。即使是新手用户也可能在不知不觉中做到这一点,所以如果您试图追踪可能有意修改文档的人,可能会导致误报。

你所要求的只是太容易欺骗和愚蠢的不幸。