Java 使用IText库进行PDF签名

Java 使用IText库进行PDF签名,java,itext,digital-signature,Java,Itext,Digital Signature,我可以使用iText 5对文档进行签名,但在生成散列后要添加的可见签名中的文本,有人能帮我解决这个问题吗。 如果我在生成哈希之前添加layer2text,它将在文件中工作。这是不可能的。 一个集成的pdf签名,至少是一个可互操作的签名,涵盖了整个版本,除了包含CMS签名容器的十六进制编码字节字符串(或一个子过滤器的PKCS#1签名)。有关详细信息,请参阅 因此,它特别涵盖可见签名中的文本。所以文本是散列数据的一部分,在生成散列后不能更改 可能的解决办法 pdf标准提供了一种机制,可以在不破坏散列

我可以使用iText 5对文档进行签名,但在生成散列后要添加的可见签名中的文本,有人能帮我解决这个问题吗。 如果我在生成哈希之前添加layer2text,它将在文件中工作。

这是不可能的。 一个集成的pdf签名,至少是一个可互操作的签名,涵盖了整个版本,除了包含CMS签名容器的十六进制编码字节字符串(或一个子过滤器的PKCS#1签名)。有关详细信息,请参阅

因此,它特别涵盖可见签名中的文本。所以文本是散列数据的一部分,在生成散列后不能更改

可能的解决办法 pdf标准提供了一种机制,可以在不破坏散列的情况下更改已签名pdf的内容:增量更新。因此,如果您删除了签名,您可以在增量更新中更改签名外观,以更新已签名的pdf。有关详细信息,请参阅