如何在 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】:试用 Adobe LiveCycle Designer 这与 Adobe Master Suit 一起提供,并具有 ES 的所有功能。它与 PKI 基础设施一起工作,并将发布“认证”的 PDF 文档,为收件人证明其真实性。最好从已经存在的东西开始。
【讨论】:
【参考方案4】:我会使用 iTextSharp 签署 PDF。 iTextSharp 是免费和开源的。看看示例代码签名 PDF http://itextpdf.sourceforge.net/howtosign.html 我之前可靠地使用过 iTextSharp。
【讨论】:
【参考方案5】:我使用 Adobe 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 编码