溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

Java怎么實現(xiàn)加密或解密PDF文檔

發(fā)布時間:2023-03-10 17:30:33 來源:億速云 閱讀:140 作者:iii 欄目:開發(fā)技術

這篇文章主要介紹了Java怎么實現(xiàn)加密或解密PDF文檔的相關知識,內(nèi)容詳細易懂,操作簡單快捷,具有一定借鑒價值,相信大家閱讀完這篇Java怎么實現(xiàn)加密或解密PDF文檔文章都會有所收獲,下面我們一起來看看吧。

PDF文檔加密是一種用于保護文件內(nèi)容的功能。加密后的文檔需要提供密碼才能打開和查看。這一功能有效防止未經(jīng)授權的訪問、復制和修改 PDF 文件。Free Spire.PDF for Java支持以編程的方式加密和解密PDF文檔,且過程中不需要安裝第三方軟件。

程序環(huán)境

在進行操作之前,請先將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中創(chuàng)建一個新項目,依次點擊“文件”(File),“項目結(jié)構(gòu)”(Project Structure),“組件”(Modules),“依賴項”(Dependencies),再點擊右方綠色“+”下的第一個選項“jar文件或路徑”(JARs or Directories),找到解壓后的Spire.PDF.jar 文件,點擊確認,將其導入到項目中。

加密PDF文檔

創(chuàng)建一個 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() 方法保存結(jié)果文檔。

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) {

        //創(chuàng)建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();

    }

}

Java怎么實現(xiàn)加密或解密PDF文檔

解密PDF文檔

創(chuàng)建一個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()方法保存結(jié)果文件。

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 {

        //創(chuàng)建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怎么實現(xiàn)加密或解密PDF文檔

關于“Java怎么實現(xiàn)加密或解密PDF文檔”這篇文章的內(nèi)容就介紹到這里,感謝各位的閱讀!相信大家對“Java怎么實現(xiàn)加密或解密PDF文檔”知識都有一定的了解,大家如果還想學習更多知識,歡迎關注億速云行業(yè)資訊頻道。

向AI問一下細節(jié)

免責聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點不代表本網(wǎng)站立場,如果涉及侵權請聯(lián)系站長郵箱:is@yisu.com進行舉報,并提供相關證據(jù),一經(jīng)查實,將立刻刪除涉嫌侵權內(nèi)容。

AI