我可以使用 iText 重置忘记的所有者密码吗?
Posted
技术标签:
【中文标题】我可以使用 iText 重置忘记的所有者密码吗?【英文标题】:Can I reset a forgotten owner password with iText? 【发布时间】:2010-01-20 17:57:55 【问题描述】:通过 iText,我可以使用 Java 打开 pdf 并编写它。如果 pdf 有所有者密码,我仍然可以打开它,但无法写入。
显然内容是可读的,看起来你可以简单地将文档写入一个新文件。 iText 不允许这样做,它会引发错误的密码异常。有没有办法解决这个问题?
【问题讨论】:
【参考方案1】:通过删除 BadPasswordException 的抛出,我能够成功保存具有所有者密码的 pdf。
【讨论】:
【参考方案2】:听起来 PDF 可能已加密并且设置了所有者密码但未设置用户密码。如果是这种情况,那么 iText 正在做正确的事情,因为必须提供所有者密码才能在将文档写入新文件之前解密文件(相比之下,仅提供用户密码,在这种情况下什么都不会允许您可以查看 PDF,有时还可以对其执行其他操作,例如打印和复制/粘贴)。
大多数(如果不是全部)享有盛誉的工具包都会尊重加密。然而,有一些不太严谨的工具可以“破解”密码。通常最好避免这种情况,但确实存在此类工具。
另一个选项,假设已设置文档的权限,以便用户密码允许打印,将使用基于打印机驱动程序的转换 SDK 将 PDF 打印为新的 PDF(如果您有很多这些文件)或简单地手动打印(如果您只在蓝月亮中获得一次)。将 PDF 打印到另一个 PDF 是一个有点讨厌的过程,因为您必须小心管理 Acrobat 实例,但如果绝对必要,可以以有限的方式完成。
【讨论】:
您是正确的,所有者密码但没有用户密码。我要问的一点是,一旦文档打开,是否可以绕过所有者密码以另存为不同的 PDF。似乎答案基本上是“是的,但你不应该这样做”以上是关于我可以使用 iText 重置忘记的所有者密码吗?的主要内容,如果未能解决你的问题,请参考以下文章