关于java:如何通过Java程序加密或者解密PDF文档

28次阅读

共计 2623 个字符,预计需要花费 7 分钟才能阅读完成。

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

正文完
 0