在ZIP文件中提取受密码保护的文件,而不会失去保护

时间:2015-12-28 13:17:42

标签: java encryption unzip zip4j

我正在尝试提取包含受密码保护的PDF文件的ZIP文件。下面是我的提取ZIP文件的代码。

ZipFile zipFile = new ZipFile(new File("C:\\Users\\sathesh\\Desktop\\temp.zip"));
        if (zipFile.isEncrypted()) {
            zipFile.setPassword("abcd1234");
        }
        zipFile.extractAll("D:\\temp\\final");

一旦执行代码,ZIP文件就会被提取,但我正在丢失应用于PDF文件的密码保护。如何在不丢失文件密码保护的情况下提取ZIP文件。
注意:如果我发表评论zipFile.setPassword("abcd1234");,那么我就会发现异常

  

线程中的异常" main" net.lingala.zip4j.exception.ZipException:net.lingala.zip4j.exception.ZipException:net.lingala.zip4j.exception.ZipException:为AES Decryptor提供的空或空密码       at net.lingala.zip4j.unzip.Unzip.initExtractFile(Unzip.java:163)       at net.lingala.zip4j.unzip.Unzip.initExtractAll(Unzip.java:83)       at net.lingala.zip4j.unzip.Unzip.extractAll(Unzip.java:73)       at net.lingala.zip4j.core.ZipFile.extractAll(ZipFile.java:488)       at net.lingala.zip4j.core.ZipFile.extractAll(ZipFile.java:451)       在Shiva.ZipProtect.zipFileUsingPassProtect(ZipProtect.java:51)       在Shiva.ZipProtect.main(ZipProtect.java:25)   引起:net.lingala.zip4j.exception.ZipException:net.lingala.zip4j.exception.ZipException:为AES Decryptor提供的空或空密码       at net.lingala.zip4j.unzip.UnzipEngine.unzipFile(UnzipEngine.java:98)       at net.lingala.zip4j.unzip.Unzip.initExtractFile(Unzip.java:160)       ......还有6个   引起:net.lingala.zip4j.exception.ZipException:为AES Decryptor提供的空或空密码       at net.lingala.zip4j.crypto.AESDecrypter.init(AESDecrypter.java:99)       at net.lingala.zip4j.crypto.AESDecrypter。(AESDecrypter.java:65)       at net.lingala.zip4j.unzip.UnzipEngine.initDecrypter(UnzipEngine.java:202)       在net.lingala.zip4j.unzip.UnzipEngine.init(UnzipEngine.java:185)       at net.lingala.zip4j.unzip.UnzipEngine.getInputStream(UnzipEngine.java:118)       at net.lingala.zip4j.unzip.UnzipEngine.unzipFile(UnzipEngine.java:78)       ......还有7个

我正在使用 Zip4j 来创建和解压缩ZIP文件。

0 个答案:

没有答案