Java 獲取PDF數字簽名證照資訊
PDF文件中可新增數字簽名,在新增簽名前,需要準備可信任簽名證照。對文件中已有的簽名,可驗證照籤是否有效。也可通過一定方法來獲取數字簽名或者簽名證照資訊。下面以Java程式碼示例展示如何讀取簽名的證照資訊。本文將分為兩個部分介紹,即編輯程式碼前的環境配置和具體的程式碼示例。
一、環境配置
-
IntelliJ IDEA (jdk 1.8.0)
-
包含簽名的PDF測試文件
-
Java PDF庫:Free Spire.PDF for Java
匯入Java庫的方法如下:
1. 手動匯入。
下載庫到本地,解壓,找到lib檔案下的jar檔案。然後執行如下圖方法手動匯入:
2.Maven 倉庫下載匯入。
在pom.xml檔案中配置如下內容:
<repositories> <repository> <id>com.e-iceblue</id> <url> </repository> </repositories> <dependencies> <dependency> <groupId>e-iceblue</groupId> <artifactId>spire.pdf.free</artifactId> <version>4.4.1</version> </dependency> </dependencies>
二、Java程式碼示例
程式碼方法主要分為以下幾個主要步驟來讀取:
1. 例項化 PdfDocument類的物件。
2. 呼叫 PdfDocument.loadFromFile()方法載入指定路徑下的已簽名的PDF文件。
3. 通過 PdfFormWidget. getFieldsWidget()方法獲取 PdfFormFieldWidgetCollection類的域集合。
4. for迴圈文件中的域,判斷獲取的域是否為簽名域。如果判定結果為true,則獲取文件中的所有 PdfSignatureFieldWidget類的簽名域。
5. 最後,呼叫 PdfSignatureFieldWidget.getSignature().getCertificate()方法獲取簽名的證照資訊。
import com.spire.pdf.*; import com.spire.pdf.widget.PdfFormFieldWidgetCollection; import com.spire.pdf.widget.PdfFormWidget; import com.spire.pdf.widget.PdfSignatureFieldWidget; public class GetCertificateInfo { public static void main(String[] args) { //例項化PdfDocument類的物件,並載入PDF文件 PdfDocument pdf = new PdfDocument(); pdf.loadFromFile("AddSignature.pdf"); //獲取域集合 PdfFormWidget pdfFormWidget = (PdfFormWidget)pdf.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); //獲取簽名證照資訊 String certificateInfo = signatureFieldWidget.getSignature().getCertificate().toString(); System.out.println(certificateInfo); } } } }
執行程式後的讀取的證照資訊結果:
原創內容,轉載務必註明出處!
—End—
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/31499788/viewspace-2842641/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- C# 獲取PDF中的數字簽名證書C#
- Java 新增、驗證PDF 數字簽名Java
- java和C#使用證照對引數簽名、加密JavaC#加密
- FDA ESG的數字簽名證書是什麼?怎麼獲取FDA ESG 數字證書?
- 數字簽名(java) (轉)Java
- 證書的數字簽名和認證 (轉)
- Java加密技術(八)——數字證照Java加密
- win10 禁止驗證數字簽名方法 win10 如何禁用數字簽名Win10
- Android 安全加密:數字簽名和數字證書Android加密
- Android安全加密:數字簽名和數字證書Android加密
- 數字簽名
- 效能:驗證數字簽名導致卡死
- 深入理解加密、解密、數字簽名和數字證書加密解密
- 基礎篇:java.security框架之簽名、加密、摘要及證照Java框架加密
- java程式碼簽名證照適合什麼樣的場景Java
- 獲取APK檔案的簽名資訊,反射實現APK反射
- 數字簽名原理
- Java 操作PPT數字簽名(一):新增、檢測、刪除簽名Java
- Java 新增數字簽名到Excel以及檢測、刪除簽名JavaExcel
- Java 獲取Word字數Java
- 公鑰加密、數字簽名、訊息認證加密
- 使用Java在PowerPoint中新增、驗證或刪除數字簽名Java
- 程式獲取Android簽名Android
- PDF簽名證書的基本特徵以及作用特徵
- 大話數字簽名
- Elgamal數字簽名原理GAM
- 加密與數字簽名加密
- java使用RSA加密方式,實現數字簽名Java加密
- RSA加密解密及數字簽名Java實現加密解密Java
- WHQL認證如何給驅動程式做數字簽名
- 數字簽名是什麼?
- applet數字簽名APP
- 給軟體數字簽名
- 網際網路安全之數字簽名、數字證書與PKI系統
- win10 如何禁用數字簽名 win10 關閉數字簽名方法Win10
- 文件數字簽名工作原理是什麼?文件簽名有什麼好處?哪些行業使用文件簽名證書?行業
- 怎樣判斷驅動程式是否有透過WHQL認證獲得微軟數字簽名微軟
- 加減密和數字簽名