记得以前看到pdf资料,看到感兴趣的,想复制下来。可是因为pdf安全设置的原因,不能复制。特别是看一些技术性文档,看到一些代码,想自己跑,看一下结果。结果却不能复制。但是一行一行敲代码,又是费时费力。不久前看itext源码,发现居然可以用再次加密的方式,改变pdf的权限。

源码版本:itext5.0.5

条件:有文件打开密码

关键点:PdfReader.unethicalreading

……

if (openPassword == null) {
                reader = new PdfReader(fis);
            } else {
                reader = new PdfReader(fis, openPassword.getBytes());
            }
            PdfReader.unethicalreading = true;//不为true不能成功。

PdfEncryptor.encrypt(reader, fos, true, userPassword, OwnerPassword, PdfWriter.ALLOW_COPY | PdfWriter.ALLOW_PRINTING);

……

是什么原因呢,看一下itext对打开权限判断:

/**
     * Checks if the document was opened with the owner password so that the end application
     * can decide what level of access restrictions to apply. If the document is not encrypted
     * it will return <CODE>true</CODE>.
     * @return <CODE>true</CODE> if the document was opened with the owner password or if it's not encrypted,
     * <CODE>false</CODE> if the document was opened with the user password
     */
    public final boolean isOpenedWithFullPermissions() {
        return !encrypted || ownerPasswordUsed || unethicalreading;
    }

而unethicalreading的定义又是:

public static boolean unethicalreading = false;

所以,只要unethicalreading 是true,就会被认为是有权限的!而这个unethicalreading又是开放的,这是不是itext故意留的后门呢,哈哈?

通过这个代码,我们可以设置自己想要的权限。我们也有自己设置的打开密码和所有密码。

当然,这份pdf也会有一个带锁的标志。因为它是加密了的。

通过稍微改一下代码,我们就可以完全解密。呵呵,这里就不说了。

itext破解pdf不能复制相关推荐

  1. itext限制PDF的复制文本和图片

    引入jar包 jar包的信息如下,请自己选择maven或者gradle亦或者其他构建工具的方式: 第一个 groupId:org.bouncycastle artifactId:bcpkix-jdk1 ...

  2. 完美破解PDF文件的防复制限制

    完美破解PDF文件的防复制限制 2008-09-24 22:04 ] 最近很多人向我问到了这样一个问题:下载下来的PDF格式的论文里的文字无法复制怎么办?因为很需要那些文字和图片,而且自已手打出来的话 ...

  3. 2023 年破解 PDF 密码的 5 种最佳方法

    世界越来越依赖数字文档和信息存储.最流行和广泛使用的数字文档文件格式之一是便携式文档格式 (PDF).PDF 文件用途广泛.可靠,并提供高级别的安全性以保护敏感信息免遭未经授权的访问.保护 PDF 的 ...

  4. 简单操作破解PDF加密文件

    简单操作只需10秒破解PDF加密文件     [尊重 原创,转载请注明出处 ]http://blog.csdn.net/guyuealian/article/details/51345950     ...

  5. iSumsoft PDF Password Refixer 破解pdf的密码,忘记pdf文件的密码了,可以通过该软件进行破解,pdf找回密码

    iSumsoft PDF Password Refixer 破解pdf的密码 忘记pdf文件的密码了以通过该软件进行破解 pdf找回密码 安装包地址 https://download.csdn.net ...

  6. iText 生成pdf

    iText 生成pdf 需求:需要根据订单生成PDF 解决:使用IText生成pdf import cn.com.artlife.archiveCenterService.util.CommonUti ...

  7. itext操作pdf文档

    关于itext操作pdf文档 pdf基本操作 自己点击链接去看下就会了 java使用itext生成pdf 再不行,去看官方文档 itext Api 直接找到com.itextpdf.text.pdf这 ...

  8. 通过Java组件iText生成PDF报表或合同,完成pdf上传,预览,存入数据库

    因业务需要,做了一个通过Java组件iText生成PDF合同,运行成功了,做个记录,也分享给大家. 首先,我们需要准备好一个有文本域的pdf文件. 1.先用word做出你需要的模板,并保存. 2.通过 ...

  9. java生成sm2证书_(转载)Java使用IText实现PDF签章

    前文讲到了如何使用Adobe的PDF工具软件进行电子印章应用.在实际应用中还有一种情形就是需要将电子印章功能集成在我们开发的系统里,这里就要用到一些PDF的二次开发库了.做过相关开发的同学应该知道常用 ...

最新文章

  1. C++ 经常使用类 string类
  2. Dubbo基础专题——第四章(Dubbo整合Nacos分析细节点)
  3. itmz文件如何打开_如何使用proteus8打开低版本proteus7的仿真文件?
  4. 一个简单的Makefile
  5. Ubuntu adb devices :???????????? no permissions 解决方法
  6. openwrt多wan限上下行速脚本,基于qosv4,imq模块替换成ifb模块[ZT]
  7. Apache Ivy
  8. LeetCode—220. 存在重复元素 III
  9. C#8.0: 在 LINQ 中支持异步的 IAsyncEnumerableT接口
  10. 发布任务PHP源码,Thinkphp5新威客任务平台源码
  11. 30 分钟带你学透快应用界面开发的最正确姿势
  12. Start Developing iOS Apps Today系列(二)
  13. 利用Microsoft Visual Studio查看.dll文件的依赖项及内部函数名
  14. wget 网页爬虫,网页抓取工具
  15. 成绩查询系统源代码-Leo老师
  16. 《无人机DIY》——2.11 三轴直升机
  17. scrapy中文文档基础知识
  18. 学习推荐书籍--C语言
  19. 用python制作二维码_使用python制作二维码
  20. nltk中文分句_learn_nltk/2. NLTK笔记-分句与分词.md at master · ourren/learn_nltk · GitHub...

热门文章

  1. 华硕 a 豆 14 酷睿版2023 款 评测 华硕2023款 a 豆 14 酷睿版参数
  2. 被列为失信被执行企业会有哪些影响?
  3. 二叉树前序、中序、后序遍历及推导方法
  4. 一键变老,一键还童,一键变性!这个全球霸屏的 FaceApp 到底是个啥?
  5. windows server实现DNS(三)DNS辅助区域
  6. AMD、CMD、UMD
  7. Centos Stream 9 换DNF源
  8. Java程序练习-C-封印之刃
  9. 从鸿蒙活到现在,鸿蒙:破碎命运
  10. 重置和重新安装kubernetes中的coreDNS