文件与页面

PDF 签名验证工具

本地运行

该工具本身是英文的;本页面将用您的语言对它进行说明。

使用 PDF 签名验证工具

功能介绍

选择一个 PDF 文件,以查看其中是否包含数字签名(带有 /ByteRange 的签名字典)或仅包含空的签名字段,以及随其存储的签名人姓名、签名原因、签名位置和签名时间。该功能不会对签名或证书进行验证。

它完全在您的浏览器中运行:您输入的任何内容都不会被上传。

如何使用PDF 签名验证工具

  1. 选择 PDF. 使用“选择 PDF”文件字段从您的设备中选择文件。该文件将在浏览器中直接读取,绝不会被上传;系统支持检查大小不超过 50 MB 的文件。
  2. 运行检查. 按 Check Signatures(检查签名)。仅选择文件不会自动开始检查。
  3. 阅读判决书. 第一行说明该 PDF 文件中是否包含数字签名、仅包含空的签名字段,还是两者皆无。
  4. 阅读每一处签名. 每个签名都会与相应的字段一同列出,其中包含该签名所存储的 /Name、/Reason、/Location 和签名时间,以及其格式和所覆盖的文件字节范围。
  5. 在别处验证. 要了解签名是否有效以及由谁签署,请在 Adobe Acrobat Reader 中打开该文件,或用 pdfsig 检查。
  6. 与发件人的说法进行比对. 如果某张发票或合同声称已进行数字签名,但未显示任何签名,请通过您已信任的渠道向发件人核实。

示例

经过数字签名的 PDF

输入
A PDF signed with a digital certificate, chosen with Choose a PDF
输出结果如下所示
Found 1 digital signature

Signature 1 (field “Signature1”, object 5)
Signer (/Name): Example Signer
Reason: Approved
Location: Example City
Signing time (/M): 2026-10-20 06:30:00 UTC (as written by the signing software)
Format: adbe.pkcs7.detached (Adobe.PPKLite)
Signed bytes: the whole file except the signature value itself

Signature fields: 1 (1 signed, 0 empty)

Signature dictionaries: 1 | ByteRange entries: 1 | /SigFlags 3 | raw /Sig text matches: 3 (also counts /SigFlags and /FT /Sig)
Not validated: the certificate, the signer’s identity and the signature value are not checked. Use Adobe Acrobat Reader or pdfsig for that.

显示每个签名及其字段,包括 /Name、/Reason、/Location 和签名时间,以及已签名的字节是否覆盖了整个文件,还是在签名后添加了更改;未签名的 PDF 会显示“此 PDF 中未找到数字签名”。

检查内容

信号其含义
找到 N 个数字签名该 PDF 文件包含带有 /ByteRange 的签名字典。这仅表示存在签名,并不意味着该签名有效。
未找到数字签名,N 个签名字段为空该表格上设有签名处,但无人签名。请将此类文件视为未签名文件。
签署人(/姓名)、原因、地点由签名软件生成的文本。该文本未与任何证书进行核对,因此可以标注任何人的姓名;许多签名仅在证书中标注了签名人的姓名,而此处并未对证书内容进行解码。
手语时间 (/M)由签名软件记录的时间,并非可信时间戳。如果 PDF 文件包含文档时间戳,则会单独列出。
带符号字节:整个文件该签名覆盖了整个文件,但签名值本身除外:签名后未添加任何内容。
此签名之后添加的字节签名后可能包含增量更新:后续签名、表单数据、注释或其他更改。请在 Acrobat Reader 中查看具体更改内容。
没有有效的 /ByteRange,或者范围超出了末尾签名值缺失或损坏,或者文件被截断。请将该签名视为无效。
加密的 PDF,无法读取的数据流加密 PDF 文件中的签名文本可能会显示为无法识别的字符,且系统会报告无法读取的压缩对象流,因为其中存储的字段不会被计入。

更多示例

未签名的 PDF

输入
A plain PDF with no signature fields
结果

No digital signatures found in this PDF.(此 PDF 中未找到数字签名。)

空的签名字段

输入
A PDF form with one signature field that nobody has signed
结果

未找到数字签名。该 PDF 文件包含 1 个空的签名字段:一个用于签名的位置,而非签名本身,其后显示“签名字段:1(已签名 0 个,空字段 1 个)”以及字段名称。

已签名的 PDF 文件在签名后发生了变化

输入
A signed PDF to which a comment was added and saved
结果

发现 1 个数字签名,包含其签名文本和签名时间;在“已签名字节”下方显示一条警告,指出文件末尾的若干字节是在该签名之后添加的。

常见问题解答

它会验证签名是否有效吗?

不。它会读取签名字典(/Type /Sig 配合 /ByteRange 和 /Contents)以及签名字段(/FT /Sig),并显示其中存储的文本;但不会验证证书、签名者的身份或签名值。 请使用 Adobe Acrobat Reader 或 pdfsig 进行验证。

结果会出错吗?

是的。/Name、/Reason、/Location 和签名时间是由签名软件生成的,无法作为任何证明;而且许多签名仅在证书中注明了签名人姓名,而此处并未对证书进行解码。 粘贴在发票上的签名图片并非数字签名,因此无法被检测到;此外,加密的 PDF 文件中,签名人的文本可能会显示为无法识别的字符。

PDF 会被上传吗?

不。文件是在您的浏览器中读取的,从未离开过浏览器。系统会检查大小不超过 50 MB 的文件,并将整个文件加载到内存中。

PDF 文件中的真实数字签名看起来是什么样子的?

一个签名字典,包含 /Type /Sig、一个列出文件带符号部分的 /ByteRange 数组,以及一个存储加密签名的 /Contents 值,该值通常与标记为 /FT /Sig 的表单字段相关联。

它能读取压缩的PDF文件吗?

是的。压缩的对象流会在浏览器中解压,因此可以找到其中存储的签名字段;任何无法读取的流都会在结果中报告。

可以一次检查多个 PDF 吗?

不可以。工具每次运行只读取一个文件;请选择下一个文件,然后再次按 Check Signatures。

我可以检查哪些文件?

PDF 文件大小上限为 50 MB。如果文件前 1024 字节中未以 %PDF- 头开头,则该文件不会被检查,页面上也会注明这一点。

术语说明

PhishDestroy 研究