相关疑难解决方法(0)

如何阅读使用未知的随机所有者密码创建的PDF?

要求是一次处理一批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();
Run Code Online (Sandbox Code Playgroud)

但是这段代码抛出了一个 com.itextpdf.text.exceptions.BadPasswordException: PdfReader not opened with owner password

有人可以指导如何解决此错误/绕过所有者密码?

在这里,我想明确表示我们合法拥有这些PDF,因此不会犯下任何犯罪/黑客行为.

PS:解决方案不仅限于iText,也可以使用任何其他Java库(免费或许可).

java pdf passwords itext aspose

10
推荐指数
1
解决办法
9735
查看次数

如何使用所有者密码解密PDF文档?

我需要能够从某些PDF文档中删除安全性/加密,最好使用itextsharp库.过去,这是可能的(如何通过提供文件使用C#参数的密码解密一个pdf文件?),但最近的变化到库意味着解决方案不再起作用.

我知道这可以通过Aspose PDF库(示例)完成,但这似乎是一个昂贵的选择.

编辑

所以这一次我以为我拥有我用来测试这个文档的所有者密码.但实际上我的密码是用户密码.的原因,我认为这是所有者密码,是因为它作为所有者的密码和其他值没有工作.我相信用户密码代替用户密码的原因是该PdfReader.unethicalreading字段被设置为true(它是一个碰巧在代码中的其他地方设置的全局标志).

c# pdf encryption itextsharp

9
推荐指数
2
解决办法
7663
查看次数

标签 统计

pdf ×2

aspose ×1

c# ×1

encryption ×1

itext ×1

itextsharp ×1

java ×1

passwords ×1