上一篇文章介绍了如何在Java中给PDF文档添加数字签名,这篇文章接着介绍如何验证数字签名的有效性。
步骤:
1.创建一个Java project,并添加一个class VerifySignature.JAVA
2.下载Free Spire.PDF for JAVA包并解压缩,然后从lib文件夹下,导入Spire.Pdf.jar包和Spire.Common.jar包到程序中:
3. VerifySignature.JAVA中添加代码:
import com.spire.pdf.PdfDocument;
import com.spire.pdf.security.PdfSignature;
import com.spire.pdf.widget.PdfFormFieldWidgetCollection;
import com.spire.pdf.widget.PdfFormWidget;
import com.spire.pdf.widget.PdfSignatureFieldWidget;
public class VerifySignature {
public static void main(String[] args) {
//加载含有签名的PDF文件
PdfDocument doc = new PdfDocument();
doc.loadFromFile("SimpleSign.pdf");
//获取域集合
PdfFormWidget pdfFormWidget = (PdfFormWidget) doc.getForm();
PdfFormFieldWidgetCollection pdfFormFieldWidgetCollection = pdfFormWidget.getFieldsWidget();
//获取签名域
for (int i = 0; i < pdfFormFieldWidgetCollection.getCount(); i++) {
if (pdfFormFieldWidgetCollection.get(i) instanceof PdfSignatureFieldWidget) {
PdfSignatureFieldWidget signatureFieldWidget = (PdfSignatureFieldWidget) pdfFormFieldWidgetCollection.get(i);
//获取签名
PdfSignature signature = signatureFieldWidget.getSignature();
//判断签名是否有效
boolean result = signature.verifySignature();
if(result) {
System.out.println("有效签名");
}else
{
System.out.println("无效签名");
}
}
}
}
}
验证结果: