gpt4 book ai didi

java - 在保存文件之前从 StandardProtectionPolicy 获取散列密码 - 使用 Apache PDFBox

转载 作者:行者123 更新时间:2023-12-02 10:39:55 24 4
gpt4 key购买 nike

我正在开发一个程序来暴力破解 PDF 文件。

现在我无法在保存 PDDocument 之前读取散列的所有者密码。问题是,一次又一次地保存文件,然后从 StandardProtectionPolicy 中读出散列密码,速度要慢得多。

这是我正在使用的代码。

//creating new Document
PDDocument doc1 = new PDDocument();

//creating StandardProtectionPolicy
StandardProtectionPolicy spp = new StandardProtectionPolicy("somepassword", "", new AccessPermission());
spp.setEncryptionKeyLength(128);

//setting the StandardProtectPolicy
doc1.protect(spp);
doc1.save("C:\\Users\\user\\Desktop\\filename.pdf");

//reading out the hash
String hash = new String(doc1.getEncryption().getOwnerKey());

//closing the PDDocument
doc1.close();

所以我的问题是,我是否可以在不保存甚至创建 PDDocument 的情况下读出哈希值。如果我不保存文档,它就不起作用。

感谢您的帮助。

卢卡

最佳答案

我已经找到解决方案了。因此对于其他想了解它的人:

                    PDDocument doc1 = new PDDocument();
StandardProtectionPolicy spp = new StandardProtectionPolicy(String.valueOf(i), "", new AccessPermission());
spp.setEncryptionKeyLength(128);
doc1.protect(spp);

不需要再保存

                    //doc1.save("C:\\Users\\user\\Desktop\\working.pdf");

StandardSecurityHandler sh = new StandardSecurityHandler(spp);
sh.prepareDocumentForEncryption(doc1);

hash = new String(doc1.getEncryption().getOwnerKey());

关于java - 在保存文件之前从 StandardProtectionPolicy 获取散列密码 - 使用 Apache PDFBox,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52988746/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com