验证 PDF 文件是否经过数字签名

问题描述

我从外部系统获得了一份文件。我不知道在文档中添加了哪个 signatureFieldName。 然后我将如何验证此文档是否经过数字签名。

我使用 iText7 进行数字签名。

解决方法

您可以通过检查 SignatureUtil.getSignatureNames() 来检查 PDF 中是否有任何签名的签名字段,它根据其 JavaDocs 获取具有签名和签名的字段名称。

PdfDocument pdfDoc = new PdfDocument(...);
SignatureUtil signUtil = new SignatureUtil(pdfDoc);
List<String> names = signUtil.getSignatureNames();
if (names.isEmpty()) {
    [... handle case of unsigned PDF ...]
} else {
    [... handle case of PDF signed at least once ...]
}