跳到主内容
UniKit

PDF 签名检查

在浏览器里读取 PDF 中的数字签名原始信息:签名数量、签名者、签名时间、算法(adbe.pkcs7.detached 等)、字节范围与是否覆盖全文。不验证密码学有效性。

浏览器本地运行所有计算都在你的浏览器里完成,数据不会离开本机。

选择 PDF 文件

文件只在本机浏览器里读取,不会上传到任何服务器

也可以把 PDF 拖到这里

选择 PDF 后在这里查看签名信息

这个工具能做什么

  • 收到一份声称已签名的合同或归档 PDF,先确认里面到底有没有签名:选择文件后会列出签名数量、对象偏移和 ByteRange。
  • 核对签名者、签名时间、签名原因与地点这些原始字段,判断这份文件和对方说的签署信息是否一致。
  • 检查「签名之后文件有没有被改过」:ByteRange 是否覆盖到文件末尾,若有末尾未覆盖字节,说明签名之后又追加了内容。
  • 识别未签名占位:有些待签模板会预留 /Contents 全为 0 的签名字段,工具会把它标成占位而不是有效签名。

示例

输入

选择一份带 Adobe.PPKLite 签名的 PDF(文件大小 460 字节,PDF 1.7)

输出

PDF 版本:1.7
签名数量:1
第 1 个签名
  对象偏移:118
  Filter:Adobe.PPKLite
  SubFilter:adbe.pkcs7.detached
  算法:PKCS#7 / CMS 分离式签名
  签名者:Zhang San
  签名时间:2026-01-01T12:00:00+08:00
  字节范围:第 1 段:0 - 301(301 字节);第 2 段:431 - 460(29 字节)
  覆盖字节数:330
  末尾未覆盖字节:0(覆盖全文)

这是按真实签名 PDF 的字节布局生成的最小样本。ByteRange 的数值来自文件本身,不同文件差别很大;工具只读取信息,不做验签。

常见问题

提示「签名有效」吗?

不会,这个工具不判断签名是否有效。它只扫描并展示 PDF 里的签名字段,不做密码学验证:不验签、不校验证书链、不检查吊销状态。要确认签名是否可信,请用 Adobe Acrobat、pdfsig 等会做完整校验的工具。

「末尾未覆盖字节」大于 0 说明什么?

说明签名的 ByteRange 没有覆盖到文件结尾,签名之后文件又被追加过内容(例如再次编辑、又加了一个签名或改写增量更新)。这并不等于签名被篡改,但确实意味着签名时的内容与当前文件不完全一致,值得进一步核实。

SubFilter 里的 adbe.pkcs7.detached 和 etsi.cades.detached 有什么区别?

前者是经典的 PKCS#7 / CMS 分离式签名,后者是欧洲标准 CAdES(也是 PAdES 的基础),会带上时间戳、吊销信息等可选签名属性。工具内置了 adbe.pkcs7.detached、adbe.pkcs7.sha1、adbe.x509.rsa_sha1、etsi.cades.detached 和 etsi.rfc3161 五种标识,其它标识只能显示原始字符串。

为什么有的签名字段显示「Contents 全是 0」?

这是未签名占位(常见于让用户下载后自己签的模板)。字段结构、ByteRange 都预留好了,但签名容器里还没有真实数据,所以工具会另外提示「属于未签名占位」。

PDF 会被上传吗?

不会。文件用浏览器 FileReader 读成字节数组后在本机解析,页面没有任何上传逻辑。敏感文件建议只在本地打开,不要用来源不明的在线服务。

关键词:pdf签名数字签名signaturebyterangepkcs7数字证书pdf 签名检查

同类工具