✅ PDF 签名验证

验证 PDF 的电子签名及是否被篡改

✓ 永久免费 · ✓ 无需注册 · ✓ 文件不上传 · ✓ 离线可用

🔒 你的文档绝不会离开你的设备。 所有处理都通过 自写的 CMS(PKCS#7)解析 + 浏览器的 Web Crypto API;文档信息用 pdf-lib 读取 在浏览器本地完成。无上传、无服务器、无追踪。

功能特点

  • 签名校验 — 校验 PDF 中每个电子签名的有效性。
  • 篡改检测 — 标记签名之后对 PDF 所做的改动。
  • 证书详情 — 显示签名人、签名时间以及证书颁发机构。
  • 100% 隐私 — 在浏览器内运行 — 无需上传。

使用方法

  1. 上传已签名的 PDF — 拖入您的文件。
  2. 验证 — 点击验证 — 工具会解析签名和证书。
  3. 查看结果 — 查看签名有效性、签署人信息及篡改状态。

使用场景

  • 核验法律合同的真实性
  • 检查供应商发票上的签名
  • 验证已签署的内部政策文件

常见问题

它到底检查了什么?

对每一个签名:文件中被签名的部分算出来的哈希,是否仍等于签名人签下的值(也就是里面有没有被改过);签名是否真的是用签名人证书里的密钥做出的;证书写的是谁、由谁颁发;证书有效期是否覆盖签名时间;以及 RFC 3161 时间戳。它还会告诉你最后一个签名之后文件里有没有追加内容。

支持哪些签名类型?

PDF 阅读器常用的几种:adbe.pkcs7.detached、ETSI.CAdES.detached(PAdES)、adbe.pkcs7.sha1,以及 ETSI.RFC3161 文档时间戳;签名算法支持 RSA(PKCS#1 v1.5 或 PSS)、ECDSA(P-256、P-384、P-521),浏览器支持的话还有 Ed25519;哈希支持 SHA-1、SHA-256、SHA-384、SHA-512。其他算法(MD5、DSA、Ed448…)会写明名称并标为"未检查",不会瞎猜。

"有效"是不是说明签名人可信?

不是——它说明文件没被改过,签名和文件里附带的证书相符。任何人都能做一个写着任意名字的证书(报告会标出自签名证书)。颁发机构是否可信、证书有没有被吊销,需要受信任机构的列表,还要联网向机构查询。网页两者都没有,本页面也不向任何地方发送数据,所以这一步请用 Adobe Acrobat Reader。

报告说最后一个签名之后追加了内容,文件被篡改了吗?

不一定。PDF 是一层层签的:填表、加批注、加第二个签名,或者某些签名工具追加的验证数据,都会在签名之后增加字节。被签名的部分本身是逐字节检查的;之后追加的内容会写明大小。Acrobat Reader 可以显示后来具体改了什么。

我的 PDF 会被上传吗?

不会。整个检查都在浏览器里完成,文件不会离开你的设备。

来自 Milo 🐨 的笔记

2026-10-20

坦白一件事:直到今天,这个页面其实什么都没验证。它只数了数签名,再看看最后一个签名后面有没有字节——一份被签名的正文被原地改过的合同,照样显示"签名覆盖了整个文件"。现在每个签名都真正在你的浏览器里检查:被签名的字节对照签名人签下的摘要,签名对照证书里的密钥,还会显示签名人、证书颁发者、有效期和时间戳。另外它也不再把每个 PDF 都说成"用 pdf-lib 制作"、"今天修改"了。

2026-10-02

以前结果是一段英文的原始 JSON,而且“签名后是否被修改”的检查看错了地方。现在是一份用你的语言写的简明报告,会检查最后一个签名覆盖的范围之后是否还追加了内容。

相关工具

💬 Bug、点子,或者就想打个招呼? 告诉 Milo 🐨 · [email protected]