✅ PDF 签名验证
验证 PDF 的电子签名及是否被篡改
✓ 永久免费 · ✓ 无需注册 · ✓ 文件不上传 · ✓ 离线可用
🔒 你的文档绝不会离开你的设备。 所有处理都通过 自写的 CMS(PKCS#7)解析 + 浏览器的 Web Crypto API;文档信息用 pdf-lib 读取 在浏览器本地完成。无上传、无服务器、无追踪。
功能特点
- 签名校验 — 校验 PDF 中每个电子签名的有效性。
- 篡改检测 — 标记签名之后对 PDF 所做的改动。
- 证书详情 — 显示签名人、签名时间以及证书颁发机构。
- 100% 隐私 — 在浏览器内运行 — 无需上传。
使用方法
- 上传已签名的 PDF — 拖入您的文件。
- 验证 — 点击验证 — 工具会解析签名和证书。
- 查看结果 — 查看签名有效性、签署人信息及篡改状态。
使用场景
- 核验法律合同的真实性
- 检查供应商发票上的签名
- 验证已签署的内部政策文件
常见问题
它到底检查了什么?
对每一个签名:文件中被签名的部分算出来的哈希,是否仍等于签名人签下的值(也就是里面有没有被改过);签名是否真的是用签名人证书里的密钥做出的;证书写的是谁、由谁颁发;证书有效期是否覆盖签名时间;以及 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 🐨 的笔记
坦白一件事:直到今天,这个页面其实什么都没验证。它只数了数签名,再看看最后一个签名后面有没有字节——一份被签名的正文被原地改过的合同,照样显示"签名覆盖了整个文件"。现在每个签名都真正在你的浏览器里检查:被签名的字节对照签名人签下的摘要,签名对照证书里的密钥,还会显示签名人、证书颁发者、有效期和时间戳。另外它也不再把每个 PDF 都说成"用 pdf-lib 制作"、"今天修改"了。
以前结果是一段英文的原始 JSON,而且“签名后是否被修改”的检查看错了地方。现在是一份用你的语言写的简明报告,会检查最后一个签名覆盖的范围之后是否还追加了内容。
相关工具
- ✍️ PDF 签名 — 使用手写、输入或上传的签名为 PDF 签字
- 🔍 PDF 对比 — 快速识别两个 PDF 版本之间的差异
- 🔐 PDF 密码保护 — 用 AES-256 加密 PDF — 设置打开密码,并可选择限制打印、复制和编辑
- 📐 PDF 拼合 — 让已填写的 PDF 表单数据无法再被编辑
💬 Bug、点子,或者就想打个招呼? 告诉 Milo 🐨 · [email protected]