我希望能到sign pdf file multiple times using itext岁.但我没有私钥.我正在生成一个散列供客户签名,在我拿回签名后,我呼叫signDeferred().是否可以创建多个空容器,生成一个包含所有空容器的散列,然后在签名到来时添加签名?

我try 添加一个以上的空容器,生成一个散列,客户端签名和返回散列,我试图添加,但我得到错误,这不是最后一个字段.你只能在最后一栏打signDeferred.但我不确定如何修复它,因为signDetached不是一个选项,因为我没有私钥.

推荐答案

不,这是不可能的,至少对于可互操作的PDF签名是不可能的.

原因是没有为PDF指定真正的并行签名(或反签名)概念,只有一个串行签名概念,一个签名接一个签名,每个新签名也覆盖所有以前的签名:

(For more details see 100.)

严格地说,PDF规范没有require个签名来涵盖其整个修订,除了嵌入的签名容器本身的占位符之外,它只有recommends个签名.因此,理论上可以创建具有多个签名的PDF,每个签名覆盖除所有嵌入的签名值之外的整个PDF.

但在实践中,PDF签名验证器将拒绝此类构造.此外,更现代的签名简档(尤其是PADES基线简档)do require将签名覆盖除其签名容器的占位符之外的所有修订.

Java相关问答推荐

JPackaged应用程序启动MSI调试,然后启动System. exit()

使用包私有构造函数强制子类Java类

如何在访问完所有文件后加入所有线程?

替换com. sun. jndi. dns. DnsContextFactory Wildfly23 JDK 17

如何调用Firebase Realtime Database中的子图像列表到android studio中的回收器视图?

Java函数式编程中的双值单值映射

路径映射未发生

RichFaces 3.x-Spring Boot-迁移web.xml

在AVL树的Remove方法中使用NoSuchElementException时遇到问题

Jakarta CDI强制bean构造/注册遗留事件侦听器

有没有办法让扩展变得多态?

Arrays.hashcode(int[])为不同的元素提供相同的散列

为什么同步数据块无效?

继续收到错误SQLJDBC EXCEPTION执行";org.springframework.dao.InvalidDataAccessResourceUsageException:&

使用While循环打印素数,无法正常工作

一对多关系和ID生成

如何使用jooq更新记录?

不能在 map 上移除折线

Java 8 中 ByteBuffer 和 BitSet 的奇怪行为

如何在 WebSphere Application Server 内的托管线程上运行 BatchEE 作业(job)?