• <menu id="w2i4a"></menu>
  • logo Aspose.Words使用教程

    文檔首頁(yè)>>Aspose.Words使用教程>>Java版Word開發(fā)工具Aspose.Words功能解析:添加和驗(yàn)證PDF文檔中的數(shù)字簽名

    Java版Word開發(fā)工具Aspose.Words功能解析:添加和驗(yàn)證PDF文檔中的數(shù)字簽名


    PDF中的數(shù)字簽名使您可以在與利益相關(guān)者共享文檔之前保護(hù)其安全。可以輕松地檢測(cè)和驗(yàn)證數(shù)字簽名的PDF文檔內(nèi)容的偽造。

    為了以編程方式對(duì)PDF文檔進(jìn)行數(shù)字簽名,在本文中,將展示如何使用Java在PDF中添加和驗(yàn)證數(shù)字簽名。以下是我們將在此處探討的一些方案:

    >>如果想要測(cè)試這項(xiàng)新功能,可點(diǎn)擊這里下載最新版試用。

    • 使用Java將數(shù)字簽名添加到PDF
    • 使用Java使用時(shí)間戳服務(wù)器對(duì)PDF進(jìn)行數(shù)字簽名
    • 使用Java驗(yàn)證PDF中的數(shù)字簽名

    ①使用Java將數(shù)字簽名添加到PDF

    以下是使用Aspose.PDF for Java將數(shù)字簽名添加到PDF文檔的步驟。

    • 創(chuàng)建Document 類的實(shí)例, 并使用PDF文檔的路徑對(duì)其進(jìn)行初始化。
    • 初始化PdfFileSignature類,并將Document對(duì)象傳遞給它。
    • 創(chuàng)建PKCS7類的實(shí)例,并使用證書的路徑和密碼對(duì)其進(jìn)行初始化。
    • 為MDP簽名類型初始化DocMDPSignature類。
    • 定義一個(gè) Rectangle 以將簽名放置在文檔頁(yè)面上。
    • 使用PdfFileSignature.Certify()方法對(duì)PDF文檔進(jìn)行數(shù)字簽名。
    • 使用PdfFileSignature.Save() 方法保存簽名的PDF。

    以下代碼示例顯示了如何使用Java對(duì)PDF進(jìn)行數(shù)字簽名。

    // Create a Document object
    Document doc = new Document("input.pdf");
    PdfFileSignature signature = new PdfFileSignature(doc);
    PKCS7 pkcs = new PKCS7("certificate.pfx", "1234567890"); // Use PKCS7/PKCS7Detached objects
    DocMDPSignature docMdpSignature = new DocMDPSignature(pkcs, DocMDPAccessPermissions.FillingInForms);
    Rectangle rect = new Rectangle(100, 600, 400, 100);
    // Set signature appearance
    signature.setSignatureAppearance("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");

    ②使用Java使用時(shí)間戳服務(wù)器對(duì)PDF進(jìn)行數(shù)字簽名

    Aspose.PDF for Java還允許您使用TimeStamp服務(wù)器將數(shù)字簽名添加到PDF。該 TimestampSettings 類是用于這一目的。以下代碼示例顯示了如何使用Java使用TimeStamp服務(wù)器將數(shù)字簽名添加到PDF。

    // Create a Document object
    Document doc = new Document("input.pdf");
    PdfFileSignature signature = new PdfFileSignature(doc);
    PKCS7 pkcs = new PKCS7("certificate.pfx", "1234567890"); // Use PKCS7/PKCS7Detached objects
    TimestampSettings timestampSettings = new TimestampSettings("https:\\your_timestamp_settings", "user:password"); // User/Password can be omitted
    pkcs.setTimestampSettings(timestampSettings); 
    Rectangle rect = new Rectangle(100, 600, 400, 100);
    // Set signature appearance
    signature.setSignatureAppearance("aspose-logo.png"); 
    // Create any of the three signature types
    signature.sign(1, "Signature Reason", "Contact", "Location", true, rect, pkcs);
    // Save digitally signed PDF file
    signature.save("Digitally Signed PDF.pdf");

    ③使用Java驗(yàn)證PDF中的數(shù)字簽名

    收到經(jīng)過(guò)數(shù)字簽名的PDF時(shí),您可以非常輕松地驗(yàn)證其簽名。以下是驗(yàn)證經(jīng)過(guò)數(shù)字簽名的PDF的步驟。

    • 創(chuàng)建PdfFileSignature 類的實(shí)例。
    • 使用PdfFileSigntature.bindPdf(string)方法綁定PDF文件。
    • 使用PdfFileSignature.verifySigned() 方法驗(yàn)證簽名的有效性 。

    下面的代碼示例演示如何使用Java驗(yàn)證經(jīng)過(guò)數(shù)字簽名的PDF文檔。

    // Create PDF File Signature
    PdfFileSignature pdfSign = new PdfFileSignature();
    // Bind PDF
    pdfSign.bindPdf("Digitally Signed PDF.pdf");
    // Verify signature using signature name
    if (pdfSign.verifySigned("Signature1"))
    {
    	if (pdfSign.isCertified()) // Certified?
    	{
    		if (pdfSign.getAccessPermissions() == DocMDPAccessPermissions.FillingInForms) // Get access permission
    		{
    			// Do something
    		}
    	} 
    }

    還想要更多嗎?您可以點(diǎn)擊閱讀【2020 · Aspose最新資源整合】查找需要的教程資源。如果您有任何疑問(wèn)或需求,請(qǐng)隨時(shí)加入Aspose技術(shù)交流群(642018183),我們很高興為您提供查詢和咨詢。
    掃碼咨詢


    添加微信 立即咨詢

    電話咨詢

    客服熱線
    023-68661681

    TOP
    三级成人熟女影院,欧美午夜成人精品视频,亚洲国产成人乱色在线观看,色中色成人论坛 (function(){ var bp = document.createElement('script'); var curProtocol = window.location.protocol.split(':')[0]; if (curProtocol === 'https') { bp.src = 'https://zz.bdstatic.com/linksubmit/push.js'; } else { bp.src = 'http://push.zhanzhang.baidu.com/push.js'; } var s = document.getElementsByTagName("script")[0]; s.parentNode.insertBefore(bp, s); })();