多语言展示
当前在线:204今日阅读:113今日分享:31

Java 验证 PDF 数字签名的有效性

本条经验将介绍如何使用Spire.PDF for JAVA验证PDF文档中的数字签名是否有效。
工具/原料

Spire.PDF for JAVA

导入jar包
1

步骤一:在java程序中新建一个文件夹可命名为Lib,下载安装好后,解压,将解压后的文件夹下的子文件夹lib 中的jar包导入到project中。

2

步骤二:点击“File-Project Structure-Modules-Dependencies-'+'-Jars and directories-添加jar包”

代码示例

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) {       //创建PdfDocument实例       PdfDocument doc = new PdfDocument();       //加载含有签名的PDF文件       doc.loadFromFile('C:\\Users\\Administrator\\Desktop\\11.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('无效签名');               }           }       }   }}

结果展示

完成代码后,运行程序,效果如下:

推荐信息