使用IText库进行PDF签名

时间:2019-01-30 19:13:16

标签: java itext digital-signature

我可以使用iText 5对文档进行签名,但是在哈希生成后要添加的可见签名中的文本,任何人都可以帮我解决这个问题。 如果我要在生成哈希之前添加layer2text,那么它将起作用。

1 个答案:

答案 0 :(得分:1)

这是不可能的。

一个集成的pdf签名(至少是一个可互操作的pdf签名)涵盖了它的整个修订版,只不过是包含CMS签名容器(或一个子过滤器的PKCS#1签名)的十六进制编码字节串。有关详情,请参见this answer

因此,尤其涵盖了可见签名中的文本 。因此该文本是散列数据的一部分,并且不能在散列生成后 更改。

可能的解决方法

pdf标准提供了一种机制,即使没有签名的pdf也可以更改内容,而不会破坏哈希值:增量更新。因此,如果签名为allows enough changes,则可以通过对签名的pdf进行增量更新来更改签名的外观。有关详情,请参见this answer