`
dubadiyu
  • 浏览: 18413 次
  • 性别: Icon_minigender_1
  • 来自: 厦门
社区版块
存档分类
最新评论

itext破解pdf不能复制

    博客分类:
  • JAVA
 
阅读更多

记得以前看到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.rar_iText pdf_itext PDF类

    总之,iText是一个强大的Java PDF处理工具,无论你是要创建简单的单页文档还是复杂的多栏表格,或者是带有交互式表单和数字签名的高级PDF,它都能提供全面的支持。通过学习和使用iText,开发者可以高效地在Java应用...

    iText操作Pdf简单整理

    在使用iText时,首先需要引入相应的库文件,如压缩包中的`itextpdf-5.5.1.jar`,这是iText的主要库,包含了处理PDF文档的核心功能。如果需要处理中文字符或者亚洲语言,还需要引入`itext-asian-5.1.0.jar.zip`解压后...

    itextpdf jar包

    在Android平台上,iTextPDF也能用于生成移动设备上的PDF文件。 版本5.5.12是iTextPDF的一个重要版本,它修复了前一版本的一些已知问题,增强了性能和稳定性,并引入了一些新特性。虽然现在已经有更新的版本,但对于...

    itextpdf.zip

    iTextPDF是一个强大的Java库,专门用于创建和处理PDF文档。这个"itextpdf.zip"压缩包包含了iTextPDF库的组件以及一个使用说明,帮助用户理解和应用这个库。主要包含以下两个JAR文件和一个文本文件: 1. **itext-...

    itextpdf-5.5.5.jar

    《深入解析iTextPDF 5.5.5:构建PDF文档的强大工具》 在信息化高度发展的今天,PDF作为一种跨平台、格式稳定的文档格式,被广泛应用于各行各业。...对于需要处理PDF文档的开发者来说,iTextPDF是不可或缺的工具之一。

    iTextpdf支持中文

    iTextpdf是一款强大的Java库,专门用于生成和编辑PDF文档,同时也支持在Android平台上使用。这个库使得开发者能够轻松地在应用程序中创建、修改和处理PDF文档,包括添加文本、图像、表格、链接等元素。在标题中提到...

    iText中文帮助文档_itext中文帮助文档_itext_iTextpdf_itext中文文档_

    iText是一款广泛使用的开源Java库,专门用于生成和编辑PDF文档。这个中文帮助文档提供了详细的指导,帮助开发者理解和使用iText来创建包含丰富内容的PDF文件。以下是对iText库和文档中涉及的关键知识点的详细解释: ...

    itext合并和拆分PDF实例

    2. **创建PdfCopy对象**:`PdfCopy`用于将多个PDF文件中的页面复制到一个新的文档中。通过`new PdfCopy(document, new FileOutputStream(savepath));` 初始化`PdfCopy`对象,其中`savepath`是合并后PDF文件的保存...

    itext pdf 5.5.5 相应的jar

    例如,`com.itextpdf.text.Document` 和 `com.itextpdf.text.Paragraph` 是创建PDF的基本元素。通过这些类,开发者可以构建整个PDF结构,并调用相应的方法完成文档的创建和写入。 总之,iText 5.5.5是处理PDF文档的...

    adobe pdf编辑器 java利用itextpdf根据模板导出pdf配套资源

    总之,Adobe PDF编辑器与Java的iTextPDF库结合,为企业提供了灵活且高效的PDF文档处理方案,无论是简单的内容替换还是复杂的文档生成,都能满足需求。在实际项目中,应根据业务场景选择合适的方法,优化代码以提高...

    itextpdf java 转pdf jar 包

    iTextPDF是一款强大的Java...总的来说,iTextPDF是Java开发中不可或缺的PDF处理工具,它提供了全面的功能,可以帮助开发者轻松地创建和处理PDF文档。通过深入学习和实践,你可以利用这个库实现各种复杂的PDF转换任务。

    Android用itext库生成中文PDF文档

    这通常涉及到解压iText的jar包,将字体文件复制到一个目录,然后重新打包jar。 3. **注册字体**:在代码中,使用`FontFactory.register()`方法注册新添加的字体。例如: ```java FontFactory.register("/path/to/...

    itextpdf-5.5.5

    总结,iTextPDF 5.5.5是一个强大的PDF处理工具,无论是在企业级应用还是个人项目中,都能发挥重要作用。通过熟练掌握其API和使用技巧,开发者可以高效地创建专业且富有表现力的PDF文档,满足多样化的业务需求。

    iText7-pdfoffice-office文件转pdf-jar包

    - **安全性**:确保转换过程中不引入恶意代码,注意PDF的安全设置,如禁止脚本执行、限制复制和打印等。 总的来说,iText7-pdfoffice是Java开发中一个非常实用的工具,可以帮助开发者轻松实现Office到PDF的转换,...

    itext生成PDF水印

    同时,为了防止恶意篡改,我们还可以将水印设置为不可选择和复制,进一步增强文档的安全性。 通过学习和掌握iText库,开发者可以灵活地生成和编辑PDF文档,包括添加水印这一关键功能。这不仅可以提升文档的专业性,...

    itext相关JARitext-asian-5.2.0及itextpdf-5.5.13.1.zip

    这个压缩包包含了两个主要的JAR文件:`itext-asian-5.2.0.jar`和`itextpdf-5.5.13.1.jar`,它们在处理PDF文件时扮演着重要的角色。 `itext-asian-5.2.0.jar`是iText的一个扩展,主要是为了支持亚洲语言,如中文、...

    itext-asian-5.2.0.jar和itextpdf-5.5.5.jar

    9. **安全和加密**:iText支持设置PDF的安全性和访问控制,保护文档不被非法复制或编辑。 10. **PDF版本兼容**:iText库生成的PDF文件可以遵循不同的PDF标准,如PDF/A、PDF/UA等,满足不同应用场景的需求。 在实际...

    pdf工具的jar包 itext.zip 用于Java开发

    &lt;artifactId&gt;itextpdf 版本号 ``` 确保替换“版本号”为iText库的最新稳定版本。 在Java代码中,你可以通过以下方式初始化iText并创建一个PDF文档: ```java import com.itextpdf.text.Document; import ...

    itextpdf.jar 5.5.5.rar

    除了生成PDF,iTextPDF也能解析和操作已存在的PDF文件。可以读取PDF文档的信息、提取文本和图像,或者合并多个PDF文档为一个。这对于文档管理和处理流程自动化来说,是非常实用的。 总结,iTextPDF 5.5.5是一个全面...

    PDF数字签名(ITEXT+keytool)

    在本项目中,我们使用了Java的ITEXT库来处理PDF文档,以及keytool工具来生成数字证书。以下是关于这些知识点的详细说明: 1. **PDF数字签名**:PDF数字签名是一种用于验证PDF文档未经修改的机制。它使用非对称加密...

Global site tag (gtag.js) - Google Analytics