Pdf 如何实现数字签名

Pdf 如何实现数字签名,pdf,digital-signature,Pdf,Digital Signature,我们正在构建一个web应用程序(Java)。有人能帮我介绍一下我们需要什么来实现以下业务场景吗 用户访问我们的网站 他输入了一些数据 他根据输入的数据生成一个PDF文件并将其导出 他对这个PDF文件进行了数字签名 然后他把这个PDF文件上传到我们的网站上 系统可以解析PDF文件,以了解谁签署了该文件,并确保该文件的完整性、不可否认性以及某些后期处理 我的问题是: 我需要什么产品/库(商业或免费开源)来实现上述功能 这些产品是否为开发人员提供API,以编程方式操作签名过程并从签名文档中检索信息

我们正在构建一个web应用程序(Java)。有人能帮我介绍一下我们需要什么来实现以下业务场景吗

  • 用户访问我们的网站
  • 他输入了一些数据
  • 他根据输入的数据生成一个PDF文件并将其导出
  • 他对这个PDF文件进行了数字签名
  • 然后他把这个PDF文件上传到我们的网站上
  • 系统可以解析PDF文件,以了解谁签署了该文件,并确保该文件的完整性、不可否认性以及某些后期处理
  • 我的问题是:

    • 我需要什么产品/库(商业或免费开源)来实现上述功能
    • 这些产品是否为开发人员提供API,以编程方式操作签名过程并从签名文档中检索信息
    • 在上述3~5个步骤中进行数字签名是合理的还是恰当的?用户是否可以一步在线签署数据(例如,不导出PDF文件)

    如果数据位于客户端,则最简单的选择是创建一个Java小程序,该程序将在浏览器中执行,并对数据进行签名。任何数据都可以签名,而且您不需要仅用于签名的PDF。通用二进制数据可以使用PKCS#7/CMS格式或使用XMLDSig(不太广泛的选项)签名


    对于Java小程序中的数据签名,您可以使用BouncyCastle或我们的SecureBlackbox(Java版)。BouncyCastle是开源的,SecureBackbox附带支持、文档和示例

    如果数据位于客户机上,那么最简单的选择就是创建一个Java小程序,它将在浏览器中执行,并对数据进行签名。任何数据都可以签名,而且您不需要仅用于签名的PDF。通用二进制数据可以使用PKCS#7/CMS格式或使用XMLDSig(不太广泛的选项)签名


    对于Java小程序中的数据签名,您可以使用BouncyCastle或我们的SecureBlackbox(Java版)。BouncyCastle是开源的,SecureBackbox附带支持、文档和示例

    iText是一个java库,它使您能够在pdf文档上签名和验证签名。这将允许您的用户在线签署pdf。可以找到一个使用iText对pdf文档中的签名进行签名和验证的好例子

    图书馆是AGPL,即您需要根据AGPL发布软件或购买商业许可证


    它以前属于LGPL,因此您可以根据LGPL的条款使用iText 2.1.7,而无需购买商业许可证。

    iText是一个java库,它使您能够在pdf文档上签名和验证签名。这将允许您的用户在线签署pdf。可以找到一个使用iText对pdf文档中的签名进行签名和验证的好例子

    图书馆是AGPL,即您需要根据AGPL发布软件或购买商业许可证


    它以前属于LGPL,因此您可以根据LGPL的条款使用iText 2.1.7,而无需购买商业许可证。

    这不会导致签署pdf文档。这将导致一个未签名的pdf文档和一个与此相关的数字签名document@Edd如果你把问题一直读到最后,你会发现PDF不是一个要求,更重要的是,这是一个额外的不需要的步骤。这不会导致一个签名的PDF文档。这将导致一个未签名的pdf文档和一个与此相关的数字签名document@Edd如果你把问题重读到最后,你会发现PDF不是一个要求,甚至更多,这是一个额外的不需要的步骤。:是否可以使用iText 2.1.7创建数字签名我如何使用C#实现相同的事情?:是否可以使用iText 2.1.7创建数字签名我如何使用C#实现相同的事情?我目前正在写一篇关于这个主题的白皮书。请参阅9月19日发布的关于验证完整性的部分。关于LTV的部分将在几天后发布。我目前正在写一篇关于这个主题的白皮书。请参阅9月19日发布的关于验证完整性的部分。关于LTV的部分将在几天后发布。