我目前正在使用 Python 编写一些 PDF 处理代码。对于这个项目,软件需要能够验证 PDF 是否具有有效的数字签名。到目前为止,在我的搜索中,我发现了一些可以解决问题的 Java API(例如 iText),但在 Python 中却一无所获。如果有人有以下任一链接,我们将不胜感激:
- 我可以用来验证数字签名的 API
- 有关如何编写自己的代码来验证数字签名的说明/一般指导
其他细节:
- PDF 的数字证书由 GlobalSign CA 颁发 Adobe(如果重要的话)
- 此代码最终将在 Google App Engine 上运行
最佳答案
我也对缺少这样的库感到恼火。
据我所知,没有开放的 Python 库可以做到这一点。有一个 MyPDFSigner库,但它似乎是封闭源代码,据我所知,它是一个二进制库。不确定它与 App Engine 的匹配程度如何。
很多人推荐使用另一种语言,比如iText ,这是一个用于执行相同操作的 Java 库。
验证签名基本上意味着几乎要重新进行签名过程,因为您需要重新计算哈希值。此外,还有不同“级别”的签名 - 例如认证,它不仅包括签名,还指定允许的更改以保持文档签名有效。因此,您需要能够知道您需要哪个级别的验证。
如果要实现这样的功能,Adobe's PDF reference是关键资源,而 Digital signatures in a PDF是一个概述,可帮助您入门。
关于python - 在 Python 中验证数字签名的 PDF,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20413062/