当前位置: 首页 > 知识库问答 >
问题:

PDFBox多重签名给无效签名Java

雍宇定
2023-03-14

PDF创建步骤:

  1. 通过添加空签名字段名称创建pdf:suhasb@gmail.com和nikhil.courser@gmail.com,使用原始的hello.pdf输出文件名hello_tag.pdf运行程序>tagpdfsignaturefields.java
  2. 从hello_tag.pdf文件中提取签名字段suhasb@gmail.com进行首次签名,输出文件名为hello_signd.pdf run program>signandidentifysignaturefields.java
  3. 从hello_signd.pdf文件中提取签名字段nikhil.courser@gmail.com进行第二次签名,输出文件名为hello_singed2.pdf run program>sign2.java

在第2步pdf得到正确的签名,但在第3步后,第2步签名的版本被无效,第3步签名在acrobat Reader中显示良好。

请查找链接Java源代码和pdf示例以供参考。Google驱动器链接pdf_multi_signs_pdfbox_java

如有任何帮助,不胜感激。

共有1个答案

谭梓
2023-03-14
private void addEmptySignField(String[] args) throws Exception, IOException {
    // Create a new document with an empty page.
    try (PDDocument document = PDDocument.load(new File(args[0]));)
    {
        PDPage page = document.getPage(0);
        document.addPage(page);
2 0 obj
<<
/Type /Pages
/Count 2
/Kids [6 0 R 6 0 R]
>>
endobj 
signatureField.setPartialName("suhasd@gmail.com");
...
signatureField1.setPartialName("nikhil.courser@gmail.com");
acroForm.setDefaultResources(resources);
...
acroForm.setDefaultAppearance(defaultAppearanceString);
document.setVersion(1.0f);
document.setVersion(2.0f);
 类似资料:
  • 这是接口签名 这是类签名者 我用java和bouncycastle创建了证书和密钥对,我现在不知道是问题还是我做错了什么?

  • 我在PDF文档中(以编程方式)填写一个表单(AcroPdf),然后在文档上签名。我从doc.pdf开始,使用pdfbox的setfields.java示例创建doc_filler.pdf。然后我对doc_fill.pdf进行签名,创建doc?filled_signer.pdf,使用一些代码,基于签名示例并在Acrobat Reader中打开pdf。输入的字段数据是可见的,并且签名面板告诉我 “此签

  • 前言 随着区块链等相关技术的创新和突破,很多有形或无形资产都将实现去中心化,数字资产将无处不在。比如我们这里分享的 亿书 就是要把数字出版物版权进行保护,实现去中心化,解决业界多年来版权保护不力的难题。 无论数字资产,还是数字出版版权,都是有明确所有权的,当前实现数字资产所属的技术手段就是本篇要介绍的签名。而多重签名是对签名的扩展使用,给数字资产转移提供了安全保障和技术手段。本篇,从基本概念入手,

  • 问题内容: 我在PDF文档中(以编程方式)填写了表格(AcroPdf),然后在文档上签名。我从doc.pdf开始,使用PDFBox的setFields.java示例创建doc_filled.pdf。然后,我根据签名示例使用一些代码对doc_filled.pdf进行签名,以创建doc?filled_signed.pdf,然后在Acrobat Reader中打开pdf。输入的字段数据可见,签名面板告诉

  • 我尝试多次使用itext 5.5.13.1模拟不同用户的签名对文档进行签名,PdfStamper位于AppendMode上。如果文档没有签名,则证书级别为CERTIFIED_NO_CHANGES_ALLOWED或CERTIFIED_FORM_FILLING_AND_ANNOTATIONS,否则我不会为PdfSignatureAppearnce设置此参数。第二次签名后,第一次签名无效,因为文档已更改

  • 由比特币的签名机制可知,如果丢失了私钥,没有任何办法可以花费对应地址的资金。 这样就使得因为丢失私钥导致资金丢失的风险会很高。为了避免一个私钥的丢失导致地址的资金丢失,比特币引入了多重签名机制,可以实现分散风险的功能。 具体来说,就是假设N个人分别持有N个私钥,只要其中M个人同意签名就可以动用某个“联合地址”的资金。 多重签名地址实际上是一个Script Hash,以2-3类型的多重签名为例,它的