java – 如何阅读使用未知的随机所有者密码创建的PDF?
内容导读
互联网集市收集整理的这篇技术教程文章主要介绍了java – 如何阅读使用未知的随机所有者密码创建的PDF?,小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含1117字,纯文字阅读大概需要2分钟。
内容图文
要求是一次处理一批PDF,并且成功使用用户密码对每个PDF进行加密.
但是,这些PDF以前是使用随机生成的动态所有者密码加密的(不知道任何一个)以防止任何编辑.
我使用iText进行加密,如下所示:
byte[] userPass = "user".getBytes();
byte[] ownerPass = "owner".getBytes();
PdfReader reader = new PdfReader("Misc.pdf");
PdfStamper stamper = new PdfStamper(reader,
new FileOutputStream("Processed_Encrypted.pdf"));
stamper.setEncryption(userPass, ownerPass,
PdfWriter.ALLOW_PRINTING, PdfWriter.ENCRYPTION_AES_128
| PdfWriter.DO_NOT_ENCRYPT_METADATA);
stamper.close();
reader.close();
但是这段代码抛出了一个com.itextpdf.text.exceptions.BadPasswordException:PdfReader没有用所有者密码打开
有人可以指导如何解决此错误/绕过所有者密码?
在这里,我想明确表示我们合法拥有这些PDF,因此不会犯下任何犯罪/黑客行为.
P.S.解决方案不仅限于iText,也可以使用任何其他Java库(免费或许可).
解决方法:
PdfReader有一个未记录的静态布尔变量,名为unethicalreading.出于显而易见的原因,默认情况下此变量设置为false.您可以将此变量设置为true,如下所示:
PdfReader.unethicalreading = true;
从现在开始,PdfReader将忽略所有者密码的存在.如果有用户密码,它只会抛出异常.
使用此风险需要您自担风险.
内容总结
以上是互联网集市为您收集整理的java – 如何阅读使用未知的随机所有者密码创建的PDF?全部内容,希望文章能够帮你解决java – 如何阅读使用未知的随机所有者密码创建的PDF?所遇到的程序开发问题。 如果觉得互联网集市技术教程内容还不错,欢迎将互联网集市网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 gblab@vip.qq.com 举报,一经查实,本站将立刻删除。
内容手机端
扫描二维码推送至手机访问。