JAVA-如何使用原始PDF和单独的PKCS#7签名数据创建签名PDF

JAVA-如何使用原始PDF和单独的PKCS#7签名数据创建签名PDF,java,pdf,digital-signature,pkcs#7,Java,Pdf,Digital Signature,Pkcs#7,我有一份原始PDF文档和单独的文件,作为PKCS#7签名数据。 我想将这些结合起来创建签名的PDF文档,以便在例如Adobe reader中显示该文档的签名人和签名人 Java中是否有任何库可用于以编程方式创建此类签名PDF文档?我需要加载该PDF文件,并以某种方式向其添加签名,然后将其另存为新的PDF文档 样本代码将不胜感激 编辑: 生成的代码应将PDF文档作为输入参数,并执行以下操作: 准备要签名的数据 向生成PKCS#7签名数据文件的外部签名机制提供要签名的数据 提供PKCS#7签名数据文

我有一份原始PDF文档和单独的文件,作为PKCS#7签名数据。 我想将这些结合起来创建签名的PDF文档,以便在例如Adobe reader中显示该文档的签名人和签名人

Java中是否有任何库可用于以编程方式创建此类签名PDF文档?我需要加载该PDF文件,并以某种方式向其添加签名,然后将其另存为新的PDF文档

样本代码将不胜感激

编辑:

生成的代码应将PDF文档作为输入参数,并执行以下操作:

  • 准备要签名的数据
  • 向生成PKCS#7签名数据文件的外部签名机制提供要签名的数据
  • 提供PKCS#7签名数据文件
  • 将签名数据添加到PDF文档
  • 保存PDF文档

  • 据我所知,第一步很重要,因为如果没有这一步,PKCS#7签名的数据将是错误的。

    如果我正确理解您的问题,您的PKCS#7将对PDF的全部内容进行签名。也就是说,所有的PDF文件字节。 在这种情况下,答案是你不能

    当你签署一个PDF文件时,你不会“按原样”签署它的所有字节。 在签署PDF之前,您必须在PDF中创建两个“字节范围”, 在PDF的中间留出足够的空间来包含签名。 然后,您必须连接这两个字节范围,对这些字节进行签名,并将签名包含在PDF中留下的空间中

    看看
    *(www.adobe.com)

    试试ApachePDFBox

    另外,请查看下面的帖子,它是关于签署PDF的


    尝试使用Apache PDFBox。另外,看看:
    现在任何一个像样的通用PDF库都应该提供签名功能。那么,在这种情况下,有没有Java库可以管理整个过程?PDF文档位于输入端,签名由外部管理,提供PKCS#7签名数据文件。在这种情况下,我需要一些东西,可以给我应该签名的数据(以正确的格式和字节范围),然后在PDF中添加签名。@user1563721请看一下昨天Bruno Lowagie对这个问题的回答:[>您必须省略散列部分,因为您将生成PKCS7