如何检查PDF是否被修改

时间:2009-11-02 22:32:24

标签: pdf trace

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

我将添加更多细节。

没有加密和签名功能。

文档由IT系统创建。用户收到文档并对其进行修改。

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

我认为所有这些应用程序都会在PDF标题中保留一些数据或在文件内部编码,并且可以检查它。然而,Windows资源管理器显示的属性没有显示任何内容......所以我感兴趣的是,如果有比查看资源管理器中的属性/标题更聪明的东西。

7 个答案:

答案 0 :(得分:2)

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

答案 1 :(得分:2)

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

你要问的是太容易欺骗和愚弄不幸。

答案 2 :(得分:1)

没有原始文件会很粗糙,除非有加密或数字签名等安全功能,它听起来不像。您是否可以访问有关原始文件的任何信息?文件大小,创建日期,任何元数据等?

答案 3 :(得分:1)

如果用于修改PDF的工具正在根据PDF规范工作,那么在信息字典中它应该更新ModDate但保留CreationDate。您可能还会在对象上看到一些非零代数,尽管可能所有对象都已重新生成,因此将生成0. CosEdit的试用版将允许您查看这些代码。项目

但是,如果该工具已被用于故意修改PDF而不留下痕迹,那么他们就会欺骗这些数据,因此它们无法帮助您。

答案 4 :(得分:1)

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

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

答案 5 :(得分:1)

如果您使用Ubuntu linux 18.04并使用Document Viewer,则可以

  • 点击文件选项(3个垂直线省略号)
  • 点击属性...
  • 在“属性”弹出窗口中查找已创建 / 已修改字段

当心:知识渊博的用户可以在不更改PDF元数据和文件系统中的 Created Modified 时间戳的情况下操作PDF内容。

答案 6 :(得分:0)

您可以使用一些工具来获取pdf文件属性。

我使用pdfinfo,您可以获取文件的许多属性,并进行检查。

pdfinfo 58dcc41d01293.pdf
    Author:         worker
    Creator:        Microsoft® Word 2016
    Producer:       Microsoft® Word 2016
    CreationDate:   Sat Aug 24 16:02:29 2019
    ModDate:        Sat Aug 24 16:02:29 2019
    Tagged:         yes
    UserProperties: no
    Suspects:       no
    Form:           none
    JavaScript:     no
    Pages:          55
    Encrypted:      no
    Page size:      841.92 x 595.32 pts (A4)
    Page rot:       0
    File size:      3346838 bytes
    Optimized:      no
    PDF version:    1.7