如何在 Web 应用程序中对 PDF 文档进行数字签名?

Posted

技术标签:

【中文标题】如何在 Web 应用程序中对 PDF 文档进行数字签名?【英文标题】:How to digitally sign PDF documents in a web application? 【发布时间】:2010-01-27 14:45:42 【问题描述】:

我正在构建一个 Web 应用程序,它最允许用户使用安装在客户端计算机中的证书对 PDF 文档进行数字签名。

签名后的文档应发回服务器,服务器将在其中存储签名版本。

服务器正在运行 Classic ASP/ASP.NET

我应该去哪里?

【问题讨论】:

Daniel, se você puder resgatar como resolveu esse problema vou agradecer muito! Estou com este mesmo questiona agora。 服务器上的 pdf 组件应该能够支持提供 pdf 哈希,然后将从浏览器接收到的签名容器注入回 pdf 文件。在浏览器端,使用 Signer.Digital Chrome 扩展程序或任何可以将签名值返回到服务器的浏览器扩展程序,其中 pdf 组件会将签名注入 pdf 文档。参考***.com/a/55676351/9659885 示例 ASP.NET MVC 项目可用于download 【参考方案1】:

我实际上在我们的 Web 应用程序中构建了一个这样的系统。以下是我发现对这样做非常有帮助的一些链接:

http://www.codeproject.com/KB/vb/Digital_Signatures.aspx

http://www.devx.com/security/Article/17249/0/page/2

http://www.example-code.com/vbdotnet/digSig1.asp

http://www.abanet.org/scitech/ec/isc/dsg-tutorial.html

http://livedocs.adobe.com/livecycle/es/sdkHelp/programmer/sdkHelp/wwhelp/wwhimpl/common/html/wwhelp.htm?context=sdkHelp&file=signaturesSigning.90.4.html

http://www.c-sharpcorner.com/UploadFile/Gowri%20S%20Paramasivam/Cryptography211242005003308AM/Cryptography2.aspx

【讨论】:

【参考方案2】:

寻找用于签署 PDF 文档的 java 库。您可以将它们部署在应该适合您的 Web 应用程序的小程序中。如果用户需要在签名之前预览 PDF 文档,请查看来自 Qoppa Software 的 java bean jPDFNotes。如果可以在不预览的情况下对文档进行签名,请查看它们的其他库 jPDFFields 或 jPDFProcess。还有 iText 是一个开源库,但 iText 不支持查看文档,所以它只能在第二种情况下工作。

【讨论】:

【参考方案3】:

试用 Adob​​e LiveCycle Designer 这与 Adob​​e Master Suit 一起提供,并具有 ES 的所有功能。它与 PKI 基础设施一起工作,并将发布“认证”的 PDF 文档,为收件人证明其真实性。最好从已经存在的东西开始。

【讨论】:

【参考方案4】:

我会使用 iTextSharp 签署 PDF。 iTextSharp 是免费和开源的。看看示例代码签名 PDF http://itextpdf.sourceforge.net/howtosign.html 我之前可靠地使用过 iTextSharp。

【讨论】:

【参考方案5】:

我使用 Adob​​e FDF 工具包编写 FDF 到 PDF 编程。我可以使用 Acrobat Pro 的完整版并使用 W-2、I-9 Federal Forms 放置字段和签名框以及 Topaz Systems 签名板,基于压力点、角度等...... activex 算法将保存签名和所有内容到 sql server 数据库中,我可以另辟蹊径,从 SQL Server 填充 PDF。

【讨论】:

【参考方案6】:

我们的 SecureBlackbox 库有一个分布式加密插件,可以满足您的需求。执行签名的客户端模块可以由用户扩展(我们提供完整的源代码)。您将在on our site 或this SO answer 中找到附加组件的详细说明。

【讨论】:

【参考方案7】:

去http://www.certisign.com.br/他们有你的答案。 CertSign 拥有启用数字认证的 API 和培训。

当我更新我的数字 CPF http://loja.certificadodigital.com.br/Serasa/Serasa-Certificados-Digitais/D1时,这个地方完全符合您的需要

【讨论】:

【参考方案8】:

我们在客户端使用Silverlight 和BouncyCastle,在服务器中使用iTextSharp。

【讨论】:

silverlight 已过时

以上是关于如何在 Web 应用程序中对 PDF 文档进行数字签名?的主要内容,如果未能解决你的问题,请参考以下文章

在 Typescript 中对嵌入的 PDF 进行 Base64 解码

如何在 Python 中对 PDF 文件进行 base64 编码

Confluence 7 编辑一个附加的文件

如何在 Android 中签署 PDF

如何在 netsuite/freemarker 的高级 pdf/html 工作表中对列表进行分组?

核心技术详解