是否有任何 Java API 可以检查 PDF 和 Office 文件格式 - 返回受密码保护/加密的文件列表?
最佳答案
您可以使用POI用于办公文档加密。
以下示例适用于基于 Office XML 的格式(.xlsx、.pptx、.docx...)。
基于 XML 的格式存储在 OLE 包流“EncryptedPackage”中。使用org.apache.poi.poifs.crypt.Decryptor解码文件:
EncryptionInfo info = new EncryptionInfo(filesystem);
Decryptor d = Decryptor.getInstance(info);
try {
if (!d.verifyPassword(password)) {
throw new RuntimeException("Unable to process: document is encrypted");
}
InputStream dataStream = d.getDataStream(filesystem);
// parse dataStream
} catch (GeneralSecurityException ex) {
throw new RuntimeException("Unable to process encrypted document", ex);
}
如果您想读取使用内置密码加密的文件,请使用 Decryptor.DEFAULT_PASSWORD。
您可以使用 iText pdf API 来识别受密码保护的 PDF。
示例:
try {
new PdfReader("C:\\Password_protected.pdf");
} catch (BadPasswordException e) {
System.out.println("PDF is password protected..");
} catch (Exception e) {
e.printStackTrace();
}
关于java - 如何在java中检查文件是否受密码保护/加密,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44280574/