文檔金喜正規買球>>Aspose.PDF使用教程>>.NET版PDF處理控件Aspose.PDF功能演示:在C#中對PDF文檔進行數字簽名并驗證數字簽名
.NET版PDF處理控件Aspose.PDF功能演示:在C#中對PDF文檔進行數字簽名并驗證數字簽名
數字簽名用于保護PDF文檔,然后再與第三方共享。對PDF文檔進行數字簽名可以通過使用數字簽名驗證文檔來檢測篡改。
Aspose.PDF for .NET是一種PDF處理和解析API,用于在跨平臺應用程序中執行文檔管理和操作任務,可以輕松用于生成,修改,轉換,渲染,保護和打印PDF文檔,而無需使用Adobe Acrobat。
為了使用數字簽名以編程方式保護PDF文檔,本文將展示如何在C#中對PDF文檔進行數字簽名和驗證。最終,將學習如何:
- 使用C#對PDF文檔進行數字簽名。
- 使用C#中的時間戳服務器對PDF文檔進行數字簽名。
- 使用C#驗證PDF中的數字簽名。
近日,.NET版Aspose.PDF升級到v20.2版,解決VerticalAlignment對TextBoxField不起作用的問題,修復PDF到HTML之間轉換等多項Bug,感興趣的朋友可點擊下方按鈕下載最新版。
用C#對PDF文檔進行數字簽名
以下是使用Aspose.PDF for .NET簽署PDF文檔的步驟。
- 創建Document類的對象,并使用PDF文檔的路徑對其進行初始化。
- 創建一個PdfFileSignature類的對象,并使用Document類的對象對其進行初始化。
- 創建PKCS7類的對象,并使用證書路徑和密碼對其進行初始化。
- 為MDP簽名類型創建并初始化DocMDPSignature類的對象。
- 創建一個矩形用于簽名放置。
- 使用PdfFileSignature.Certify()方法對PDF文檔進行數字簽名。
- 使用PdfFileSignature.Save()方法保存文檔。
以下代碼示例顯示了如何在C#中向PDF文檔添加數字簽名。
// Load PDF document using (Document pdfDocument = new Document("Document.pdf")) { using (PdfFileSignature signature = new PdfFileSignature(pdfDocument)) { PKCS7 pkcs = new PKCS7("certificate.pfx", "1234567890"); // Use PKCS7/PKCS7Detached objects DocMDPSignature docMdpSignature = new DocMDPSignature(pkcs, DocMDPAccessPermissions.FillingInForms); System.Drawing.Rectangle rect = new System.Drawing.Rectangle(100, 100, 200, 100); // Set signature appearance signature.SignatureAppearance = @"aspose-logo.png"; // Create any of the three signature types signature.Certify(1, "Signature Reason", "Contact", "Location", true, rect, docMdpSignature); // Save digitally signed PDF file signature.Save("Digitally Signed PDF.pdf"); } }
使用C#中的時間戳服務器對PDF文檔進行數字簽名
使用TimestampSettings類提供詳細信息,從而使用TimeStamp服務器對PDF文檔進行簽名。以下代碼示例演示如何使用C#中的TimeStamp服務器對PDF文檔進行數字簽名。
// Load PDF document using (Document pdfDocument = new Document("Document.pdf")) { using (PdfFileSignature signature = new PdfFileSignature(pdfDocument)) { PKCS7 pkcs = new PKCS7("certificate.pfx", "WebSales"); // Use PKCS7/PKCS7Detached objects TimestampSettings timestampSettings = new TimestampSettings("https:\\your_timestamp_settings", "user:password"); // User/Password can be omitted pkcs.TimestampSettings = timestampSettings; System.Drawing.Rectangle rect = new System.Drawing.Rectangle(100, 100, 200, 100); // Create any of the three signature types signature.Sign(1, "Signature Reason", "Contact", "Location", true, rect, pkcs); // Save output PDF file signature.Save("Output.pdf"); } }
使用C#驗證PDF中的數字簽名
使用以下步驟驗證經過數字簽名的PDF文檔:
- 創建Document類的對象,并使用PDF文檔的路徑對其進行初始化。
- 創建一個PdfFileSignature類的對象,并使用Document類的對象對其進行初始化。
- 訪問PDF文檔的所有簽名。
- 使用PdfFileSignature.VerifySigned()方法驗證簽名的有效性。
下面的代碼示例演示如何使用C#驗證PDF中的數字簽名。
// Load PDF document using (Document pdfDocument = new Document("Document.pdf")) { using (PdfFileSignature signature = new PdfFileSignature(pdfDocument)) { IListsigNames = signature.GetSignNames(); if (sigNames.Count > 0) // Any signatures? { if (signature.VerifySigned(sigNames[0] as string)) // Verify first one { if (signature.IsCertified) // Certified? { if (signature.GetAccessPermissions() == DocMDPAccessPermissions.FillingInForms) // Get access permission { // Do something } } } } } }還想要更多嗎?您可以點擊閱讀【2019 · Aspose最新資源整合】,查找需要的教程資源。如果您有任何疑問或需求,請隨時加入Aspose技術交流群(642018183),我們很高興為您提供查詢和咨詢。