写点什么

如何通过 Java 程序加密或者解密 PDF 文档

作者:Geek_249eec
  • 2023-03-10
    四川
  • 本文字数:1790 字

    阅读完需:约 6 分钟

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(); }}
复制代码



用户头像

Geek_249eec

关注

还未添加个人签名 2022-07-13 加入

还未添加个人简介

评论

发布
暂无评论
如何通过Java程序加密或者解密PDF文档_Java_Geek_249eec_InfoQ写作社区