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

时间:2015-03-27 15:13:51

标签: java pdf digital-signature pkcs#7

我有原始的PDF文档和单独的文件作为PKCS#7签名数据。 我想将这些组合起来创建签名的PDF文档,以便它可以在Adobe读者中显示它已签名并签署文档。

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

示例代码将不胜感激。

修改

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

  1. 准备要签名的数据
  2. 提供要签署到生成PKCS#7签名数据文件的外部签名机制的数据
  3. 提供PKCS#7签名数据文件
  4. 将签名数据添加到PDF文档
  5. 保存PDF文档
  6. 据我所知,第一步很重要,因为没有它,PKCS#7签名数据将是错误的。

2 个答案:

答案 0 :(得分:5)

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

当您签署PDF文件时,您不会签署所有字节"按原样#34;。 在签署PDF之前,您必须创建两个"字节范围"在PDF中, 在PDF的中间留下足够的空间来包含签名。 然后你必须连接这两个字节范围,签署这些字节并在你留在PDF中的空间中包含签名。

看看
* https://www.adobe.com/devnet-docs/acrobatetk/tools/DigSig/Acrobat_DigitalSignatures_in_PDF.pdf(www.adobe.com)

答案 1 :(得分:0)

尝试Apache PDFBox

另外,请查看以下帖子,签署PDF文件。

How to sign pdf in Java using pdfbox

相关问题