Java:如何加密或解密PDF文档?

这篇具有很好参考价值的文章主要介绍了Java:如何加密或解密PDF文档?。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

在工作中,我们会将重要的文档进行加密,并且设置用户的访问权限,其他外部人员均无法打开,只有获取该权限的用户才有资格打开文档。此外,限制用户的使用权限,极大程度上阻止了那些有意要篡改、拷贝其中内容的人,提高文档的安全性。与此同时,文档加密的另一大作用是为了防止丢失,因为可能存在员工出差或离职时,将文档有意或无意的删除,造成文档丢失的现象,从而导致公司的业务和形象受到一定影响。那么我们如何才能加密PDF文档呢?加密文档之后又该如何解密呢?下面篇文章就详细介绍了如何以编程的方式,通过Java代码加密或解密PDF文档。

  • 使用密码加密 PDF 文档
  • 移除 PDF 文档的密码

代码编译环境:

IntelliJ IDEA 2019(jdk 1.8.0)

PDF Jar包:Free Spire.PDF for Java 5.1.0

引入jar

导入方法1:

手动引入。将Free Spire.PDF for Java下载到本地,解压,找到lib文件夹下的Spire.PDF.jar文件。在IDEA中打开如下界面,将本地路径中的jar文件引入Java程序:

Java:如何加密或解密PDF文档?

导入方法2:如果您想通过 Maven安装,则可以在 pom.xml 文件中添加以下代码导入 JAR 文件。

<repositories>

        <repository>

            <id>com.e-iceblue</id>

            <url>https://repo.e-iceblue.cn/repository/maven-public/</url>

        </repository>

    </repositories>

<dependencies>

    <dependency>

        <groupId>e-iceblue</groupId>

        <artifactId>spire.pdf.free</artifactId>

        <version>5.1.0</version>

    </dependency>

</dependencies>

使用密码加密 PDF 文档

可以用于加密 PDF 文档的密码有两种:打开密码和权限密码。打开密码可以限制其他人打开 PDF 文档,必须输入密码才能查看有打开密码的 PDF 文档。而权限密码则可以限制对文档进行操作,如打印、复制、评论等。当一个 PDF 文档被同时用这两种密码加密时,可以使用其中任意一种来打开 PDF 文档。

  • 创建 PdfDocument 的对象。
  • 使用 PdfDocument.loadFromFile() 方法载入 PDF 文件。
  • 设置打开密码、权限密码、密钥大小以及权限。
  • 使用 PdfDocument.getSecurity().encrypt(java.lang.String openPassword, java.lang.String permissionPassword, java.util.EnumSet<PdfPermissionsFlags> permissions, PdfEncryptionKeySize keySize) 方法加密文档。
  • 使用 PdfDocument.saveToFile() 方法保存 PDF 文件。

完整代码

Java

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("收购XXX公司项目.pdf");

        //加密文档
        PdfEncryptionKeySize keySize = PdfEncryptionKeySize.Key_128_Bit;
        String openPassword = "password";
        String permissionPassword = "permission";
        EnumSet flags = EnumSet.of(PdfPermissionsFlags.Print, PdfPermissionsFlags.Fill_Fields);
        pdf.getSecurity().encrypt(openPassword, permissionPassword, flags, keySize);

        //保存文档
        pdf.saveToFile("加密.pdf");
        pdf.close();
    }
}

效果图

Java:如何加密或解密PDF文档?

移除 PDF 文档的密码

如需解密 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) 方法将打开密码和权限密码设置为空,以解密文档。
  • 使用 PdfDocument.saveToFile() 方法保存 PDF 文件。

完整代码

Java

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

        //创建PdfDocument的对象
        PdfDocument pdf = new PdfDocument();

        //使用密码载入加密的PDF文档
        pdf.loadFromFile("加密.pdf", "password");

        //解密文档
        pdf.getSecurity().encrypt("", "", PdfPermissionsFlags.getDefaultPermissions(), PdfEncryptionKeySize.Key_256_Bit, "permission");

        //保存文件
        pdf.saveToFile("解密.pdf");
        pdf.close();
    }
}

效果图

Java:如何加密或解密PDF文档?

—本文完—文章来源地址https://www.toymoban.com/news/detail-412372.html

到了这里,关于Java:如何加密或解密PDF文档?的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 【教程】如何使用Java生成PDF文档?

    在如今数字化时代,越来越多的人使用PDF文档进行信息传递和共享。而使用Java生成PDF文档也成为了一个非常重要的技能,因为Java作为一种通用的编程语言,可以在不同的操作系统和平台上运行。下面,我们将为您介绍如何使用Java生成PDF文档。 PDF文档的生成通常包括两个步骤

    2024年02月02日
    浏览(47)
  • 轻松解密PDF,解除你的文档

    最简单的办法去除PDF密码、找回PDF密码、解密PDF,不用下载软件,只需在百度搜索“密码帝官网”并点击“立即开始”,在用户中心上传需要解密的文件,稍等片刻就能找回密码或解除限制。即使PDF文档不能编辑、打印、复制,也支持Excel、Word、WPS表格文档、PPT演示文稿、

    2024年02月09日
    浏览(34)
  • 加密的PDF怎么解密?其实很简单,只要掌握这个技巧

    如今大家在工作中或学习中,使用频率较高的文档格式就是PDF,因为它具有较高的稳定性,在传输过程中不会发生内容排版错乱等现象。而有时我们为了保护PDF文件里的内容信息,就需要对其使用加密处理,避免他人未经授权进行查看。 可当大家要对该文档进行打印或编辑时

    2024年02月11日
    浏览(46)
  • 如何通过Java代码将 PDF文档转为 HTML格式

    虽然PDF文件适合用于打印和发布,但不适合所有类型的文档。例如,包含复杂图表和图形的文档可能无法在PDF中呈现得很好。但是HTML文件可以在任何可运行浏览器的计算机上进行阅读并显示。并且HTML还具有占用服务器资源较小,便于搜索引擎收录的特点。那么今天这篇文章就

    2024年02月05日
    浏览(55)
  • PDF控件Spire.PDF for .NET【安全】演示:加密 PDF 文档

    加密PDF是人们常用的保护PDF的方法。无论对于公司还是个人,使用PDF加密来设置一些限制都是必不可少的。为了使PDF文档可供未经授权的用户阅读但无法修改,加密的PDF文档需要两个密码:所有者密码和用户密码。本节将特别介绍一种通过 Spire.PDF for .NET 使用 C#、VB.NET 快速加

    2024年03月14日
    浏览(47)
  • Java 常用加密解密

    常见的加密算法可以分成三类,对称加密算法,非对称加密算法和Hash算法。 对称加密 常见的对称加密算法:DES、3DES、DESX、Blowfish、IDEA、RC4、RC5、RC6和AES 非对称加密 常见的非对称加密算法:RSA、ECC(移动设备用)、Diffie-Hellman、El Gamal、DSA(数字签名用) Hash算法 常见的H

    2024年01月16日
    浏览(46)
  • Java加密与解密

    首先应当区分加密与编码并不是一回事。 一、简介 加密方式主要有3种: 可逆 【对称加密】:symmetric,例如 AES、DES 等。 【非对称加密】:asymmetric,例如 RSA、DSA 等。 不可逆 【摘要加密】:Digest/Hash,例如 MD5、SHA-1、SHA-256、HMAC 等。 加解密思想:将一种排序好的二进制,转

    2024年02月07日
    浏览(39)
  • java和js实现前端加密后端解密,后端加密前端解密(Base64)

    目录 1.前端加密后端解密 2.后端加密前端解密 在前端和后端数据传输时,常常涉及到隐私数据的传输(例如用户名和密码),这时,我们就需要对隐私数据进行加密解密 1.前端加密后端解密         1.1 前端jquery实现         1.2后端 2.后端加密前端解密         2.1后端加密

    2024年02月16日
    浏览(56)
  • 没有PDF密码,如何解密文件?

    PDF文件有两种密码,一个打开密码、一个限制编辑密码,因为PDF文件设置了密码,那么打开、编辑PDF文件就会受到限制。想要解密,我们需要输入正确的密码,但是有时候我们可能会出现忘记密码的情况,或者网上下载PDF文件会出现不知道密码的情况,那么在没有密码的情况

    2024年02月05日
    浏览(42)
  • JAVA各种加密与解密方式

    在密码学中,凯撒加密是一种最简单且最广为人知的加密技术。它是一种替换加密的技术,明文中的所有字母都在字母表上向后(或向前)按照一个固定数目进行偏移后被替换成密文。这个加密方法是以罗马共和时期恺撒的名字命名的,当年恺撒曾用此方法与其将军们进行联

    2024年02月12日
    浏览(34)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包