首頁 > 軟體

詳解Java如何實現加密或者解密PDF檔案

2023-03-11 06:00:16

PDF檔案加密是一種用於保護檔案內容的功能。加密後的檔案需要提供密碼才能開啟和檢視。這一功能有效防止未經授權的存取、複製和修改 PDF 檔案。Free Spire.PDF for Java支援以程式設計的方式加密和解密PDF檔案,且過程中不需要安裝第三方軟體。詳細操作步驟和相關程式碼可以參考以下內容。

程式環境

在進行操作之前,請先將jar匯入到Java程式中,請參考以下兩種匯入方法:

方法一:如果您使用的是 maven,可以通過新增以下程式碼到專案的 pom.xml 檔案中,將 jar檔案匯入到應用程式中。

<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.pdf.free</artifactId>
        <version>5.1.0</version>
    </dependency>
</dependencies>

方法二:如果您沒有使用 maven,則可以從此連結下載Free Spire.PDF for Java,找到lib資料夾下的Spire.PDF.jar並進行解壓;然後在IDEA中建立一個新專案,依次點選“檔案”(File),“專案結構”(Project Structure),“元件”(Modules),“依賴項”(Dependencies),再點選右方綠色“+”下的第一個選項“jar檔案或路徑”(JARs or Directories),找到解壓後的Spire.PDF.jar 檔案,點選確認,將其匯入到專案中。

加密PDF檔案

• 建立一個 PdfDocument 範例。

• 使用 PdfDocument.loadFromFile()方法載入PDF範例檔案。

• 設定開啟密碼、許可權密碼、加密金鑰大小和許可權。

• 使用 PdfDocument.getSecurity().encrypt(java.lang.String openPassword, java.lang.String permissionPassword, java.util.EnumSet<PdfPermissionsFlags> permissions, PdfEncryptionKeySize keySize)方法來加密 PDF 檔案。

• 使用 PdfDocument.saveToFile() 方法儲存結果檔案。

import java.util.EnumSet;

import com.spire.pdf.PdfDocument;
import com.spire.pdf.security.PdfEncryptionKeySize;
import com.spire.pdf.security.PdfPermissionsFlags;

public class EncryptPDF {

    public static void main(String[] args) {

        //建立PdfDocument範例
        PdfDocument pdf = new PdfDocument();

        //載入PDF範例檔案
        pdf.loadFromFile("sample.pdf");

        //加密檔案
        PdfEncryptionKeySize keySize = PdfEncryptionKeySize.Key_128_Bit;
        String openPassword = "123456";
        String permissionPassword = "abcdef";
        EnumSet flags = EnumSet.of(PdfPermissionsFlags.Print, PdfPermissionsFlags.Fill_Fields);
        pdf.getSecurity().encrypt(openPassword, permissionPassword, flags, keySize);

        //儲存檔案
        pdf.saveToFile("Encrypt.pdf");
        pdf.close();

    }

}

解密PDF檔案

• 建立一個PdfDocument 範例。

• 使用PdfDocument.loadFromFile(java.lang.String filename, java.lang.String password) 方法載入加密PDF檔案。

• 通過使用PdfDocument.getSecurity().encrypt(java.lang.String openPassword, java.lang.String permissionPassword, java.util.EnumSet<PdfPermissionsFlags> permissions, PdfEncryptionKeySize keySize, java.lang.String originalPermissionPassword)方法來解密 PDF 檔案。

• 使用PdfDocument.saveToFile()方法儲存結果檔案。

import com.spire.pdf.PdfDocument;
import com.spire.pdf.security.PdfEncryptionKeySize;
import com.spire.pdf.security.PdfPermissionsFlags;

public class DecryptPDF {

    public static void main(String[] args) throws Exception {

        //建立PdfDocument範例
        PdfDocument pdf = new PdfDocument();
        
        //載入加密檔案
        pdf.loadFromFile("Encrypt.pdf", "123456");

        //解密檔案
        pdf.getSecurity().encrypt("", "", PdfPermissionsFlags.getDefaultPermissions(), PdfEncryptionKeySize.Key_256_Bit, "abcdef");

        //儲存檔案
        pdf.saveToFile("Decrypt.pdf");
        pdf.close();
    }

到此這篇關於詳解Java如何實現加密或者解密PDF檔案的文章就介紹到這了,更多相關Java加密解密PDF內容請搜尋it145.com以前的文章或繼續瀏覽下面的相關文章希望大家以後多多支援it145.com!


IT145.com E-mail:sddin#qq.com