Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/400.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 验证时如何将PDF批注与签名连接?_Java_Itext_Digital Signature_Pdf Annotations - Fatal编程技术网

Java 验证时如何将PDF批注与签名连接?

Java 验证时如何将PDF批注与签名连接?,java,itext,digital-signature,pdf-annotations,Java,Itext,Digital Signature,Pdf Annotations,我试图验证pades签名,但带有警告,就像在AdobeReader中一样(有后续更改…)。我可以验证签名的完整性,但如何检查文档签名后是否添加了批注?我可以从pdf中列出注释,如: /注释[8 0 R 27 0 R 41 0 R] 它显示:签名(80R)、注释(270R)和另一个签名(410R) 如果我理解正确的话,第一个数字的顺序(8,27,41)表示它们在pdf中的排列顺序。也许我错了? 如果是真的,如何获取注释值及其属性?请查看我的书。图2.20显示了PDF经过多次签名后的外观: 以您为

我试图验证pades签名,但带有警告,就像在AdobeReader中一样(有后续更改…)。我可以验证签名的完整性,但如何检查文档签名后是否添加了批注?我可以从pdf中列出注释,如:

/注释[8 0 R 27 0 R 41 0 R]

它显示:签名(80R)、注释(270R)和另一个签名(410R)

如果我理解正确的话,第一个数字的顺序(8,27,41)表示它们在pdf中的排列顺序。也许我错了? 如果是真的,如何获取注释值及其属性?

请查看我的书。图2.20显示了PDF经过多次签名后的外观:

以您为例,修订版1很可能包含以下注释:

/Annots[8 0 R]
鉴于第2版包含:

/Annots[8 0 R 27 0 R]
/Annots[8 0 R 27 0 R 41 0 R]
第3版包括:

/Annots[8 0 R 27 0 R]
/Annots[8 0 R 27 0 R 41 0 R]
回答你的问题:它们在PDF中的排列顺序是这样的吗:可能不会总是这样(PDF是一种非常特殊的格式),但你的猜测是一个安全的假设

您希望检测在哪个签名之前或之后添加了哪些批注。要实现这一点,您必须提取每个PDF的不同版本

PDF总是以
%%EOF
结尾,每个新签名都会在
%%EOF
之后添加数据。返回上一版本意味着删除文件末尾的字节,直到到达下一个
%%EOF

如果你想用iText来做这件事,你可以在我的书中找到一些例子