精华内容
下载资源
问答
  • PDF加密

    2019-08-07 15:07:00
    pdf加密实现 在工作中碰到需求是给pdf记性权限加密,区分打开,编辑、打印的权限,并且设置密码,经过调研有两种实现方式,但是这两种方式均不能很好的兼容市面上大多数pdf软件,并且限制了打印功能以后,几乎很少...

    pdf加密实现

    在工作中碰到需求是给pdf记性权限加密,区分打开,编辑、打印的权限,并且设置密码,经过调研有两种实现方式,但是这两种方式均不能很好的兼容市面上大多数pdf软件,并且限制了打印功能以后,几乎很少有软件能显式的要求输入打印密码,表现均为打印按钮被置灰,无法打印,只有在输入ownerPassword(文件所有者权限)以后,才能够打印,可以说是很傻了,当实在有这种打印需要输入密码界面的需求,请带着你的刀去和产品重新讨论需求

    Adobe Acrobat DC

    该软件是市面上比较规范的pdf工具,该软件详细pdf权限控制界面如图所示:

    Adobe Acrobat DC权限界面

    从图中可以看出:
    这款工具有两个密码,分别为,用户权限密码(打开pdf需要)和所有者权限密码(编辑等其他所有权限),经测试,所有者权限密码可以进行查看,例如chrome等其他工具打开时均有输入密码的界面

    N多个权限
    1:允许打印



    2:允许更改


    以上总共这么多权限,下面就开始我们的实现


    通过pdfbox实现

    pdfbox加密实现方式非常简单,当然这个类的功能不止加密,还有很多实现,具体参考官方demo和api https://pdfbox.apache.org/docs/2.0.13/javadocs/

    pom依赖

    <!-- pdfbox 目前最新版本是2.0.16 -->
    <dependency>
    	<groupId>org.apache.pdfbox</groupId>
    	<artifactId>pdfbox</artifactId>
    	<version>2.0.16</version>
    </dependency>
    <!--  -->
    <dependency>
    	<groupId>org.bouncycastle</groupId>
    	<artifactId>bcprov-jdk15on</artifactId>
    	<version>1.57</version>
    </dependency>
    

    PDFEncryptUtils.java

    /**
     * <p>对pdf进行权限控制</p>
     * @author Calvin
     * @date 2019/07/17
     * @since v1.0
     */
    public class PDFEncryptUtils {
    
    	/**
    	 * 加密
    	 * @param fileName  文件名
    	 * @param fileAuth 文件权限
    	 * @throws Exception
    	 */
    	public static void encrypt(String fileName, FileAuth fileAuth) throws Exception {
    		File file = new File(fileName);
    		PDDocument document = PDDocument.load(file);
    		AccessPermission permissions = new AccessPermission();
    		//此处简单进行实现,具体还有很多个权限,此处只实现最常用的,打开,编辑,打印
    		//权限中默认都可以操作
    		permissions.setCanExtractContent(fileAuth.getOpen() != 1);
    		permissions.setCanModify(fileAuth.getEdit() != 1);
    		permissions.setCanPrint(fileAuth.getPrint() != 1);
    		StandardProtectionPolicy policy = new StandardProtectionPolicy(fileAuth.getOwnerPassword(),
    		        fileAuth.getUserPassword(), permissions);
    		SecurityHandler handler = new StandardSecurityHandler(policy);
    		handler.prepareDocumentForEncryption(document);
    		PDEncryption encryption = new PDEncryption();
    		encryption.setSecurityHandler(handler);
    		document.setEncryptionDictionary(encryption);
    		//保存原路径
    		document.save(file.getPath());
    	}
    }
    

    FileAuth.java

    /**
     * <p> 用户权限</p>
     *
     * @author Calvin
     * @date 2019/07/15
     * @since v1.0
     */
    public class FileAuth {
    
    
    	/**
    	 * 是否可以打开
    	 */
    	private int open;
    
    	/**
    	 * 是否可以编辑
    	 */
    	private int edit;
    
    	/**
    	 * 是否可以打印
    	 */
    	private int print;
    
    	/**
    	 * 所有者权限密码
    	 */
    	private String ownerPassword;
    
    	/**
    	 * 用户权限密码
    	 */
    	private String userPassword;
    
    	public int getOpen() {
    	    return open;
    	}
    
    	public void setOpen(int open) {
    	    this.open = open;
    	}
    
    	public int getEdit() {
    	    return edit;
    	}
    
    	public void setEdit(int edit) {
    	    this.edit = edit;
    	}
    
    	public int getPrint() {
    	    return print;
    	}
    
    	public void setPrint(int print) {
    	    this.print = print;
    	}
    
    	public String getOwnerPassword() {
    	    return ownerPassword;
    	}
    
    	public void setOwnerPassword(String ownerPassword) {
    	    this.ownerPassword = ownerPassword;
    	}
    
    	public String getUserPassword() {
    	    return userPassword;
    	}
    
    	public void setUserPassword(String userPassword) {
    	    this.userPassword = userPassword;
    	}
    }
    

    利用itext-pdf给pdf加密

    <dependency>
    	<groupId>com.itextpdf</groupId>
    	<artifactId>itextpdf</artifactId>
    	<version>5.5.11</version>
    	<!-- 最新版本是7.1.7-->
    </dependency>
    <!-- 这里贴一下
    <dependency>
        <groupId>com.itextpdf</groupId>
        <artifactId>barcodes</artifactId>
        <version>7.1.7</version>
        <type>pom</type>
    </dependency>
    
    -->
    

    PDFEncryptUtils.java

    /**
     * 给pdf设置权限
     * @param pdfStamper pdf文件
     * @param fileAuth 文件权限密码
     * @throws IOException 文件异常
     * @throws DocumentException
     */
    public static void encrypt(PdfStamper pdfStamper, FileAuth fileAuth) throws DocumentException, IOException {
            pdfStamper.setEncryption(null, null, PdfWriter.ALLOW_COPY, true);
            pdfStamper.setEncryption(null, null, PdfWriter.ALLOW_DEGRADED_PRINTING, true);
            pdfStamper.setEncryption(null, null, PdfWriter.ALLOW_FILL_IN, true);
            pdfStamper.setEncryption(null, null, PdfWriter.ALLOW_MODIFY_ANNOTATIONS, true);
            pdfStamper.setEncryption(null, null, PdfWriter.ALLOW_MODIFY_CONTENTS, true);
            pdfStamper.setEncryption(null, null, PdfWriter.ALLOW_PRINTING, true);
            byte[] userpassword = fileAuth.getUserPassword().getBytes();
            byte[] owenerpassword = fileAuth.getOwnerPassword().getBytes();
               if(fileAuth.getOpen() == 1){
                   pdfStamper.setEncryption(userpassword, userpassword, PdfWriter.ALLOW_SCREENREADERS, false);
               }
               if(fileAuth.getEdit() == 1){
                   pdfStamper.setEncryption(userpassword, owenerpassword, PdfWriter.ALLOW_PRINTING, false);
                   pdfStamper.setEncryption(userpassword, owenerpassword, PdfWriter.ALLOW_DEGRADED_PRINTING,
                           false);
               }
               if(fileAuth.getPrint() == 1){
                   pdfStamper.setEncryption(userpassword, owenerpassword, PdfWriter.ALLOW_MODIFY_ANNOTATIONS,
                           false);
                   pdfStamper.setEncryption(userpassword, owenerpassword, PdfWriter.ALLOW_MODIFY_CONTENTS, false);
                   pdfStamper.setEncryption(userpassword, owenerpassword, PdfWriter.ALLOW_FILL_IN, false);
               }
               pdfStamper.close();
        }
    
    

    Client调用

    public static void main(String[] args) throws IOException, DocumentException, NoSuchFieldException, IllegalAccessException {
            PdfReader reader = new PdfReader("D:\\4028832b6c4af5e2016c4af694310044.pdf");
            java.lang.reflect.Field f = reader.getClass().getDeclaredField("encrypted");
            f.setAccessible(true);
            f.set(reader, false);
            PdfStamper stamper = new PdfStamper(reader, new FileOutputStream("D:\\test1.pdf"));
            FileAuth fileAuth = new FileAuth();
            fileAuth.setEdit(1);
            fileAuth.setOpen(1);
            fileAuth.setPrint(1);
            fileAuth.setUserPassword("123456");
            fileAuth.setOwnerPassword("654321");
            encrypt(stamper, fileAuth);
        }
    

    缺点

    1:这两种做法并不能兼容市面上所有的软件,并且由一些pdf密码破解工具,即可进行解密操作,安全的密码,还是建议使用证书 2:如果限制了打印的权限,那么除非主动去获取pdf的owner权限,不然打印的按钮都是disabled,无法进行打印,并且没有输入打印密码的地方

    转载于:https://my.oschina.net/u/4113085/blog/3084711

    展开全文
  • pdf加密破解

    2018-12-19 09:27:59
    pdf加密破解,可以破解加密的PDF文件,让它可以编缉或者转换
  • pdf加密文件破解

    2019-02-28 15:10:18
    pdf加密文件破解,
  • FileOpenInstaller. PDF加密插件
  • PDF加密+水印

    2016-03-10 11:24:14
    PDF加密,水印
  • 有哪些简单好用的PDF加密的方法呢? 方法1: 免费又不用安装的在线加密 现在虽然还不至于完全做到手机办公,但基本上移动端已经能满足日常大部分需求,所以在线加密的方法对于手机党来说也是相当实用了。 首先搜索...

    对于Word和Excel等office文档的加密我们都比较熟悉了,但PDF文件如果要加密应该怎么操作呢?有哪些简单好用的PDF加密的方法呢?

    方法1:

    免费又不用安装的在线加密

    现在虽然还不至于完全做到手机办公,但基本上移动端已经能满足日常大部分需求,所以在线加密的方法对于手机党来说也是相当实用了。

    首先搜索speedpdf在线加密工具,选择“PDF加密”即可快速给PDF文档设置密码。

    添加需要加密的PDF文档后,点击转换再弹出的窗口中输入密码后点击PDF加密即可,完成后下载加密后的PDF文件。
    在这里插入图片描述

    方法2:

    多种加密方式可选的免费方法

    如果我们需要对PDF进行更多形式的加密,可以使用极速PDF编辑器。首先用极速PDF编辑器打开需要加密的PDF文档后,点击上方工具栏中的“安全保护”,在弹窗中可以设置打开密码外,还可以仅对文档的打印、复制、编辑等权限进行加密。勾选“需要更改安全性”并输入密码后,对要限制的功能取消勾选即可。
    在这里插入图片描述

    加密完成后记住一定要将文档重新保存一下,加密方可生效。

    方法3:

    批量多文件一键操作的方法

    如果我们需要进行加密的文档比较多,这次每次只能处理一个就相当耗时,可以使用客户端一键批量操作的方法。

    安装极速玩转后,选择PDF加密进入,将所有需要加密的PDF文档直接拖到转换页面后,点击右下角的开始加密即可,另外左下角的输出路径可以修改转换后的文档保存位置。
    在这里插入图片描述

    展开全文
  • PDF加密模块 创建此PDF加密模块以支持检测加密的PDF文件。 它具有2个服务: PDFValidatorService PDFEncryptionCheckerService PDFValidatorService具有3个功能: isBufferPDF , isStreamPDF和isFilePathPDF ,...
  • pdf加密文件怎么加密

    2019-03-18 11:48:02
    安全性可能会比较高一点,但是,PDF文件还是可以打开,让人可以直接看到里面的内容,如果要保证PDF文件中的内容不被别人所查阅,好的方法便是给PDF文件加上密码,下面便了解一下PDF加密文件怎么加密的。1、要给PDF...

    PDF文件可能相较于其他文件,安全性可能会比较高一点,但是,PDF文件还是可以打开,让人可以直接看到里面的内容,如果要保证PDF文件中的内容不被别人所查阅,好的方法便是给PDF文件加上密码,下面便了解一下PDF加密文件怎么加密的。
    pdf加密文件怎么加密
    1、要给PDF文件加密,一般情况下,我们可以借用工具的帮忙,用鼠标点击电脑中的百度浏览器,将PDF转换器安装到电脑桌面上。
    pdf加密文件怎么加密
    2、接着用鼠标打开PDF转换器,用鼠标点击界面上面的PDF操作,接着用鼠标点击界面下面的PDF加密这项功能。
    pdf加密文件怎么加密
    3、接着将文件添加到转换器中,用鼠标点击界面下面的添加文件,在弹出的窗口中找到要加密的PDF文件将文件添加到转换器中。
    pdf加密文件怎么加密
    4、接着为加密的文件输入密码,鼠标点击界面下的统一加密,在弹出的窗口中输入密码。
    pdf加密文件怎么加密
    5、接下来为加密的文件设置保存路径,大家点击上面的浏览,在弹出的窗口中找到一个合适的路径,并点击该路径,接着点击窗口中的选择文件夹。
    pdf加密文件怎么加密
    6、接着大家可以为文件进行加密工作了,大家用鼠标点击界面上开始转换,PDF器便会为文件进行加密的了,当加密成功,转换器的界面的状态栏就会变满。
    pdf加密文件怎么加密
    小编在上面这篇文章中跟大家分享了怎么给PDF格式的文件加上密码,希望小编的方法能够帮助大家。

    转载于:https://blog.51cto.com/14200677/2364581

    展开全文
  • 025pdf加密器10.0加强版

    2018-02-02 00:06:14
    025pdf加密器10.0加强版025pdf加密器10.0加强版025pdf加密器10.0加强版025pdf加密器10.0加强版
  • PDF有效期设置/PDF加密

    2016-07-29 15:56:03
    发给客户或供应商的PDF...很多PDF加密或有效期设置工具要么容易破解要么加密后成exe文件,不是原来的PDF文件,不能达到“隐蔽”的作用。当然,安全是相对的,这种设置方式虽然不是绝对安全,对90%以上的用户足够了。
  • 金软PDF加密

    2016-06-02 13:18:29
    金软PDF加密 一、概述: 金软PDF加密批量加密工具是一款由北京信久通科技有限公司独立开发的专门为PDF文件批量添加密码的工具,让您加密后的PDF文档更安全,更放心。 二、特点: ...

    金软PDF加密

    一、概述:

    金软PDF加密批量加密工具是一款由北京信久通科技有限公司独立开发的专门为PDF文件批量添加密码的工具,让您加密后的PDF文档更安全,更放心。

    二、特点:

    金软PDF加密的出现,使您可以在为PDF文档添加密码时更加轻松,方便。

    1.金软PDF加密的加密类型:

          打开密码:打开PDF文档需要添加的密码

          权限密码:用来对PDF文件进行编辑、打印等操作进行限制的密码

    2.金软PDF加密的加密方式

          40 bit RC4

          128 bit RC4

          128 bit AES

          256 bit AES

    3.金软PDF加密指定加密部分:

          加密所有的文档内容;

          加密所有的文档内容,元数据除外

          仅加密文档的附件

    4.金软PDF加密可以指定编辑、打印等操作的权限

    5.金软PDF加密可以进行批处理操作

    6.金软PDF加密可以线性化输出

    7.具体设置效果与Acrobat PDF设置属性一致

    来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/31139743/viewspace-2112791/,如需转载,请注明出处,否则将追究法律责任。

    转载于:http://blog.itpub.net/31139743/viewspace-2112791/

    展开全文
  • 如何给pdf文档加密,pdf加密的好方法。现如今大家的保护意识越来越强,不论是自己的个人财产,还是工作当中的重要文件资料。大家都会给它们增加一层保护,防治它们的丢失。工作中会有许许多多重要的文件资料,大家就...
  • PDF加密解密器是一款非常优秀的PDF加密及密码移除软件,界面简洁、明了,操作简单、方便,运行稳定。... 对PDF文件进行批量加密与解密,128-bit加密标准。...  PDF加密解密器功能说明 ... PDF加密解密器截图
  • import com.itextpdf.text.pdf.PdfReader;import com.itextpdf.text.pdf.PdfStamper;import com.itextpdf.text.pdf.PdfWriter;import org.slf4j.Logger;import org.slf4j.LoggerFactory;import java.io.File;import ...
  • PDF文件在日常办公中使用频率非常得高,PDF格式可以保护文档内容不被...我们可以给PDF加密,也就是为PDF文件设置密码,那么具体应该怎么操作?一起来看一下。小编以自己电脑里的工具为例和大家分享一下具体怎么给PD...
  • PDF加密、解密内幕(一) - PDF加密字典对象分析 0 几个关键词的说明 PDF加密有两个口令即:Owner(to set the pdf document Permission or change the permission) Password和User Password,在本文中翻译...
  • 这个程序在linux平台下编译,可以破解全系的PDF加密文档。破解方式是口令字典破解。默认情况是pdf9以下版本的破解,但其实pdf9.10.11等更高版本都是一样的,在主程序里吧版本限制修改,所有版本的PDF文档都是可以...
  • 国外PDF加密软件

    2011-09-29 23:51:02
    有很多软件都称可以给PDF加密,但没一个好用。发一个国外找到的PDF加密软件,VaySoft PDFtoEXE,可加时间,次数。很好用,已经在公司里用上了,加密后给客户。这个是正版没破解,可以用一个月,我是在虚拟机里运行。...
  • PDF加密过程完全解析

    2014-08-12 10:13:41
    详细介绍PDF加密过程的步骤和所用到的算法,完全经本人实际应用过,所用PDF版本文1.4。PDF_reference中提到的生成U条目的过程,有些出入,本人觉得有待商榷
  • 本篇文章帮大家学习PDFBox加密PDF文档,包含了PDFBox加密PDF文档使用方法、操作技巧、实例演示和注意事项,有一定的学习价值,大家可以用来参考。在前一章中,我们已经看到了如何在PDF文档中插入图像。 在本章中,...
  • PDF加密器PDFEncrypt(一机一密码)
  • Total PDF Encrypter是一款实用简便的PDF加密工具,该软件能够帮助用户对PDF进行加密处理,需要安装PDF工具驱动库才能使用,软件方便简单,功能强大,感兴趣的朋友千万不要错过了。 使用说明: PDF 加密工具,可...
  • PDF密码破解(移除)器、PDF密码清除、PDF加密破解、破解PDF打印限制【亲测,好用】。操作非常简单,2步即可。 可以清除受保护的PDF文档,清除PDF文档上的密码,清除PDF上的加密密码,清除PDF的打印限制,清除密码后...
  • 如何解密pdf加密文件

    2019-09-15 13:47:08
    毕竟很多文件都会涉及到自己的隐私或者顾客的隐私,主要是给一份PDF文件加密之后,突然一时之间想不起来密码,就无法打开文件,就很麻烦了,接下来小编告诉大家如何解密PDF加密文件。 1、要将一份忘记密码的PDF...
  • 金软PDF加密是一款免费的简单易用,方便使用的pdf加密软件,支持pdf批量加密,让你的pdf文件使用更加安全放心,充分保护你的文件隐私!有需要的朋友欢迎下载使用! 金软PDF加密使用方法 1、添加需要加密的pdf文件 ...
  • PDF加密破解Jar

    2019-03-20 10:34:57
    通过对有加密PDF文件,进行解密,通常用于word,html..转PDF,然后有加密情况
  • pdf加密及分享工具

    2021-02-07 17:59:27
    PDF加密现状及需求 PDF格式的文件现在被越来越广泛的使用,那么文件的安全性如何就显得尤为关键。如果你的重要资料都是pdf格式,而且要售卖这些pdf文件,那么只是单纯的设置密码则无法保证pdf文件不被随意转发。你的...
  • pdf加密怎么加?相信许多小伙伴的pdf文件内容中都会有重要内容,不知道你们会不会像小编一样,在不知道pdf文件可以加密之前,总是在担心文件安全。后来小姐妹告诉小编,pdf文件是可以加密的!小编就再也不怕啦!今天...
  • java设置pdf加密Today we will be looking at the document workhorse that is PDF, and how to programmatically employ various features: encryption, password protection, and setting permissions. For Java ...
  • Python中通过PyPDF2实现PDF加密资源以及示例代码

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 3,771
精华内容 1,508
关键字:

pdf加密