亚洲乱码中文字幕综合,中国熟女仑乱hd,亚洲精品乱拍国产一区二区三区,一本大道卡一卡二卡三乱码全集资源,又粗又黄又硬又爽的免费视频

詳解Java如何實現(xiàn)加密或者解密PDF文檔

 更新時間:2023年03月10日 16:33:40   作者:Gloria  
PDF文檔加密是一種用于保護(hù)文件內(nèi)容的功能。這篇文章主要介紹了Java實現(xiàn)加密或者解密PDF文檔的方法,感興趣的小伙伴可以跟隨小編一起學(xué)習(xí)一下

PDF文檔加密是一種用于保護(hù)文件內(nèi)容的功能。加密后的文檔需要提供密碼才能打開和查看。這一功能有效防止未經(jīng)授權(quán)的訪問、復(fù)制和修改 PDF 文件。Free Spire.PDF for Java支持以編程的方式加密和解密PDF文檔,且過程中不需要安裝第三方軟件。詳細(xì)操作步驟和相關(guān)代碼可以參考以下內(nèi)容。

程序環(huán)境

在進(jìn)行操作之前,請先將jar導(dǎo)入到Java程序中,請參考以下兩種導(dǎo)入方法:

方法一:如果您使用的是 maven,可以通過添加以下代碼到項目的 pom.xml 文件中,將 jar文件導(dǎo)入到應(yīng)用程序中。

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

加密PDF文檔

• 創(chuàng)建一個 PdfDocument 實例。

• 使用 PdfDocument.loadFromFile()方法加載PDF示例文檔。

• 設(shè)置打開密碼、權(quán)限密碼、加密密鑰大小和權(quán)限。

• 使用 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();

    }

}

解密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();
    }

到此這篇關(guān)于詳解Java如何實現(xiàn)加密或者解密PDF文檔的文章就介紹到這了,更多相關(guān)Java加密解密PDF內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • SpringBoot默認(rèn)包掃描機制及@ComponentScan指定掃描路徑詳解

    SpringBoot默認(rèn)包掃描機制及@ComponentScan指定掃描路徑詳解

    這篇文章主要介紹了SpringBoot默認(rèn)包掃描機制及@ComponentScan指定掃描路徑詳解,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
    2021-11-11
  • Java中Objects.equals踩坑記錄

    Java中Objects.equals踩坑記錄

    最近在工作中發(fā)現(xiàn)一個問題,覺著還是挺有必要記錄下的,這篇文章主要給大家介紹了關(guān)于Java中Objects.equals踩坑的相關(guān)資料,需要的朋友可以參考下
    2022-03-03
  • 如何將eclipse項目導(dǎo)入到idea的方法步驟(圖文)

    如何將eclipse項目導(dǎo)入到idea的方法步驟(圖文)

    這篇文章主要介紹了如何將eclipse項目導(dǎo)入到idea的方法步驟,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2020-03-03
  • Spring boot項目redisTemplate實現(xiàn)輕量級消息隊列的方法

    Spring boot項目redisTemplate實現(xiàn)輕量級消息隊列的方法

    這篇文章主要給大家介紹了關(guān)于Spring boot項目redisTemplate實現(xiàn)輕量級消息隊列的相關(guān)資料,文中通過示例代碼介紹的非常詳細(xì),對大家學(xué)習(xí)或者使用Spring boot具有一定的參考學(xué)習(xí)價值,需要的朋友們下面來一起學(xué)習(xí)學(xué)習(xí)吧
    2019-04-04
  • Java 動態(tài)代理原理分析

    Java 動態(tài)代理原理分析

    這篇文章主要介紹了Java 動態(tài)代理 原理分析的相關(guān)資料,希望通過本文能幫助到大家,讓大家掌握動態(tài)代理的原理,需要的朋友可以參考下
    2017-10-10
  • SpringMVC的五大核心組件用法及說明

    SpringMVC的五大核心組件用法及說明

    這篇文章主要介紹了SpringMVC的五大核心組件用法及說明,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
    2023-03-03
  • Sentinel結(jié)合Nacos實現(xiàn)數(shù)據(jù)持久化過程詳解

    Sentinel結(jié)合Nacos實現(xiàn)數(shù)據(jù)持久化過程詳解

    這篇文章主要介紹了Sentinel結(jié)合Nacos實現(xiàn)數(shù)據(jù)持久化過程,要持久化的原因是因為每次啟動Sentinel都會使之前配置的規(guī)則就清空了,這樣每次都要再去設(shè)定規(guī)則顯得非常的麻煩,感興趣想要詳細(xì)了解可以參考下文
    2023-05-05
  • Java并發(fā)編程ArrayBlockingQueue的使用

    Java并發(fā)編程ArrayBlockingQueue的使用

    ArrayBlockingQueue是一個備受矚目的有界阻塞隊列,本文將全面深入地介紹ArrayBlockingQueue的內(nèi)部機制、使用場景以及最佳實踐,感興趣的可以了解一下
    2024-08-08
  • icePDF去水印的方法(推薦)

    icePDF去水印的方法(推薦)

    下面小編就為大家?guī)硪黄猧cePDF去水印的方法(推薦)。小編覺得挺不錯的,現(xiàn)在就分享給大家,也給大家做個參考。一起跟隨小編過來看看吧
    2016-12-12
  • java解析xml常用的幾種方式總結(jié)

    java解析xml常用的幾種方式總結(jié)

    這篇文章主要介紹了java解析xml常用的幾種方式總結(jié),有需要的朋友可以參考一下
    2013-11-11

最新評論