使用Java在PowerPoint中新增、驗證或刪除數字簽名

banq發表於2022-01-28

數字簽名是數字資訊(如電子郵件訊息或電子文件)上的電子加密認證戳。它可以幫助收件人驗證文件內容自簽名後是否已更改。如果進行任何更改,簽名將立即失效。在本文中,我將演示如何使用 Java 在 PowerPoint 中新增、驗證或刪除數字簽名。
 
為了處理 PowerPoint 文件,我將使用Spire.Presentation for Java API。API 的 jar 可以從官方網站下載或從 Maven 安裝,方法是將以下程式碼新增到基於 maven 的專案的 pom.xml 檔案中。

<repositories>   
    <repository>   
        <id>com.e-iceblue</id>   
        <name>e-iceblue</name>   
        <url>https://repo.e-iceblue.com/nexus/content/groups/public/</url>   
    </repository>   
</repositories>   
<dependencies>   
    <dependency>   
        <groupId> e-iceblue </groupId>   
        <artifactId>spire.presentation</artifactId>   
        <version>5.1.7</version>   
    </dependency>   
</dependencies>


在Java中為PowerPoint新增數字簽名
以下是向PowerPoint文件新增數字簽名的步驟。

  1. 建立一個Presentation類的例項。
  2. 使用Presentation.loadFromFile(String filePath)方法載入PowerPoint文件。
  3. 使用Presentation.addDigitalSignature(String pfxPath, String password, String comments, Date signTime)方法向文件新增數字簽名。
  4. 使用Presentation.saveToFile(String filePath, FileFormat fileFormat)方法儲存結果文件。

import com.spire.presentation.FileFormat;
import com.spire.presentation.Presentation;
 
import java.util.Date;
 
public class AddSignature {
    public static void main(String []args) throws Exception {
        //Create a Presentation instance
        Presentation presentation = new Presentation();
        //Load the PowerPoint document
        presentation.loadFromFile("Sample.pptx");
 
        //Add a digital signature
        String pfxPath = "Certificate.pfx";
        String password = "123456"; //The password of the .pfx file
        String comment = "Modification is not allowed";
        presentation.addDigitalSignature(pfxPath, password, comment, new Date());
 
        //Save the result to file
        presentation.saveToFile("AddSignature.pptx", FileFormat.PPTX_2013);
    }
}


 

用Java驗證PowerPoint中的數字簽名
以下是在PowerPoint文件中驗證數字簽名的步驟。

  • 建立一個Presentation類的例項。
  • 使用Presentation.loadFromFile(String filePath)方法載入一個PowerPoint文件。
  • 使用Presentation.isDigitallySigned()方法檢測該文件是否有數字簽名。

import com.spire.presentation.Presentation;
 
public class VerifyIfPPTisDigitallySigned {
    public static void main(String []args) throws Exception {
        //Create a Presentation instance
        Presentation presentation = new Presentation();
        //Load a PowerPoint document
        presentation.loadFromFile("AddSignature.pptx");
 
        //Verify if the document is digitally signed
        if (presentation.isDigitallySigned()) {
            System.out.println("This document is digitally signed");
        } else {
            System.out.println("This document is not digitally signed");
        }
    }
}

 

在Java中從PowerPoint中刪除數字簽名
以下是刪除PowerPoint文件中所有數字簽名的步驟。

  1. 建立一個Presentation類的例項。
  2. 使用Presentation.loadFromFile(String filePath)方法載入一個PowerPoint文件。
  3. 使用Presentation.isDigitallySigned()方法檢測該文件是否有數字簽名。如果結果為真,使用Presentation.removeAllDigitalSignatures()方法移除所有數字簽名。
  4. 使用Presentation.saveToFile(String filePath, FileFormat fileFormat)方法儲存結果文件。

import com.spire.presentation.FileFormat;
import com.spire.presentation.Presentation;
 
public class RemoveSignature {
    public static void main(String []args) throws Exception {
        //Create a Presentation instance
        Presentation presentation = new Presentation();
 
        //Load the PowerPoint document
        presentation.loadFromFile("AddSignature.pptx");
 
        //Determine if the document is digitally signed
        if (presentation.isDigitallySigned())
        {
            //Remove all digital signatures
            presentation.removeAllDigitalSignatures();
        }
 
        //Save the result document
        presentation.saveToFile("RemoveSignature.pptx", FileFormat.PPTX_2013);
    }
}


 

相關文章