繁体   English   中英

如何在Java中检查文件是否受密码保护/加密

[英]How to check if a file is password protected /encrypted or not in java

是否有任何Java API可以检查PDF和Office文件格式-返回受密码保护/加密的文件列表?

您可以将POI用于Office文档加密。

以下示例基于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();
    }

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM