你常常能发现 PDF 被修改过的迹象:修改日期晚于创建日期,制作程序(Producer)字段写的是某个 PDF 编辑器,某一行的字体略有不同,或者有些可选中的文字藏在一个方框下面。任何人用普通的 PDF 阅读器,几分钟就能检查这些。

老实说,这些迹象都不是证据。精心修改过的文件可能看起来毫无破绽,而从没改过的文件,可能只因为重新保存过就显得可疑。真正能确认文档真实的只有两样:有效的数字签名,或向签发方核实。其他一切都只是线索。

第 1 步:查看文档属性

大多数 PDF 阅读器都能显示文件的元数据。在 Adobe Acrobat Reader 中,它在“文件”下的“属性”里。在其他阅读器中,找“文档属性”或信息按钮。你要看的是以下几个字段。

  • 创建日期和修改日期(Created 和 Modified)。如果修改日期比创建日期晚了几天甚至几个月,说明有程序重新保存过这个文件。可能是修改了内容,也可能只是有人加了注释或填了表格。
  • 制作程序和创建者(Producer 和 Creator)。它们写的是软件名称。一份银行对账单,如果制作程序是面向个人用户的 PDF 编辑器,而不是银行通常会用的那类系统,就值得多看一眼。
  • 作者和标题(Author 和 Title)。它们有时是从模板或之前的文档里遗留下来的,能告诉你文件的来历。

元数据告诉你的是最后一个程序做了什么,而不是谁写了这份文档。举个真实的例子:从 Kopitiam 编辑器下载的 PDF,制作程序显示为 pdf-lib(Kopitiam 使用的开源库),创建日期和修改日期都是你下载的那一刻。原来的作者和标题不会被带过来。所以创建日期是新的,并不代表文档是新的,只代表文件是新的。

第 2 步:仔细看文字

把关键部分放大到 200% 或 400%:姓名、金额、日期、账号。修改通常范围小、目标明确,破绽往往就出现在这些地方。

  • 字体。某个数字的字体、粗细或大小是否和周围的数字略有不同?留意在不同字体中形状差别较大的字符,比如数字 1、4 和 7。
  • 对齐。某一行是否比相邻的行略高或略低,或者字符间距不均匀?
  • 颜色。某个词的黑色是否稍有不同,或者在有底色的背景上,它后面是否有一个淡淡的方框?
  • 合计。数字还对得上吗?在工资单或发票上,改过的数字常常会让合计或税额那一行对不上。

有些阅读器还会列出文件使用的字体。Adobe Acrobat Reader 的“属性”窗口里有一个“字体”选项卡。如果一份文档用的是一种字体,但列表里还出现了另一种,比如 Helvetica,就要问问这种字体用在了哪里。

第 3 步:试着选中并复制文字

这是最有用、但大多数人从没试过的检查。拖动鼠标选中可疑那一行的文字,复制,然后粘贴到一个纯文本笔记里。

  • 如果粘贴出来的文字和你看到的不一样,就说明有隐藏文字。修改 PDF 的一种常见做法,是用白色方框盖住原来的字,再在上面打上新字。原来的字往往还留在文件里。
  • 如果页面上其他地方都能选中,只有一行选不中,那部分可能是贴在原文上面的一张图片。
  • 如果其他页面都是文字,只有某一整页是图片,那一页可能被替换过,也可能只是单独扫描的。

Kopitiam 自己的“覆盖并替换”工具就是这样工作的。它在现有文字上盖一个颜色相同的框,并在上面加一个新的文本框,原来的文字仍留在下面的文件里。所以它适合修正错别字,但不适合隐藏信息。要隐藏信息,Kopitiam 的“涂黑”工具会把每个涂黑过的页面变成图片,下面的文字就真的没了。你可以用“PDF 转 Word 和文本”提取文件里的每一个字,包括被盖住的字,然后读一读结果。它在你的浏览器中运行,所以文件不会被上传。

扫描版 PDF 是例外。扫描件是页面的图片,所以没有文字可选中,也没有字体列表可比较。如果扫描件做过文字识别,即使没人改过,隐藏的文字层也可能有错误。对于扫描件,你能依靠的只有目测检查和签发方。

第 4 步:检查数字签名

数字签名是文件中唯一能真正检测出改动的东西。它是用签署人的证书生成的加密封印。签署后哪怕只改了一个字符,验证都会失败。

  1. 用能验证签名的阅读器打开 PDF,比如 Adobe Acrobat Reader。
  2. 找到顶部的签名栏或签名面板,并打开它。
  3. 看它显示了什么:签名是否有效,是谁签的,签署后文档是否被改动过。
  4. 如果显示签署后有改动,就看看详情。有些文档允许之后填写表格或添加注释,面板会列出改了什么。

有两点要分清。第一,手写签名的图片不是数字签名。和大多数 PDF 编辑器一样,Kopitiam 的“签名”工具会把手写的签名作为图片放上去,这完全不能证明文件有没有被改过。第二,有效的数字签名能证明文件自签署后没有改动,但不能证明签署前写的内容是真实的。

增量保存:藏在某些文件里的历史

有些 PDF 软件保存修改时,是把改动追加到文件末尾,而不是重写整个文件。之前的版本仍在文件里,在改动的下面。专业工具可以把这些早期版本提取出来,有些阅读器的签名面板也能让你查看签署时的那个版本。

你可以做一个粗略的检查。用纯文本编辑器打开 PDF 的副本,搜索 %%EOF,它标记一个已保存版本的结尾。出现不止一个,可能说明文件做过增量保存。这只是一个提示:有些文件因为普通的技术原因就会有两个;而很多编辑器,包括 Kopitiam,都会写出一个全新的文件,不会留下任何早期版本。

为什么这些都不是证据

  • 元数据很容易修改或删除。没有元数据什么也证明不了,有元数据也可能是伪造的。
  • 无害的操作也会留下同样的痕迹。用“打印”再“另存为 PDF”、压缩文件或填写表格,都会改变制作程序和日期,但内容不变。
  • 拼合 PDF 会把添加的文字合并进页面,所以选中并复制的检查可能再也看不出单独的图层。
  • 高明的伪造者能匹配字体,甚至从头重建一页,不留下任何你在家能发现的痕迹。

所以,把你发现的东西当作提出疑问的理由,而不是下结论的依据。如果租房申请人给的工资单看起来不对劲,不要因为一个字体就指责别人。通过你信任的渠道重新索取文件,或者向雇主核实详情。

真正要紧时,直接找源头

凡是涉及金钱或法律效力的文件,比如申请贷款用的银行对账单、租房用的工资单、求职用的证书,可靠的核实方式是找签发方。请银行、雇主或机构直接把文件发给你,或者请他们确认关键数字。有些签发方会印上参考编号或二维码,你可以在其官方网站上核对。请自己输入官网地址,不要相信文件上印的链接。

如果争议可能闹上法庭或涉及保险公司,请原封不动地保留你收到的原始文件,并寻求专业帮助。正规的取证鉴定需要专业工具和专业知识。Kopitiam 是 PDF 编辑器,不是取证工具,本文的检查只是初步查看,不是调查。