我有第三方系统生成的PDF。使用PDF编辑器或els软件我修改了它 是否可以检测PDF文件是否被修改,没有原始文件?
我将添加更多细节。
没有加密和签名功能。
文档由IT系统创建。用户收到文档并对其进行修改。
是否有可能以某种方式跟踪这种变化?
我认为所有这些应用程序都会在PDF标题中保留一些数据或在文件内部编码,并且可以检查它。然而,Windows资源管理器显示的属性没有显示任何内容......所以我感兴趣的是,如果有比查看资源管理器中的属性/标题更聪明的东西。
答案 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,则可以
当心:知识渊博的用户可以在不更改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