【问题标题】:How to unzip a password-protected archive created by Linux, using Java如何使用 Java 解压缩由 Linux 创建的受密码保护的存档
【发布时间】:2012-06-23 20:59:05
【问题描述】:

我最近在做一个 Android 项目,遇到了一个问题。我向 webservice 发送了一个请求,并获得了一个带有密码保护的 zip 文件。 zip 文件是使用 Linux 命令创建的

zip -P 123123123123123123 test.zip test.txt

我想用 Java 解压它。因为没有标准的 API 支持所以我需要第三个库。

  1. 我试过winzipaes,但是提示我的zip文件不是AES-256格式。
  2. 我不能使用sevenzipjbinding,它太大了。

您对此有什么建议吗?你知道 Linux 用什么算法加密 zip 文件吗?

【问题讨论】:

  • 检查这个线程,它正在处理同样的问题:stackoverflow.com/questions/1271569/…
  • 为什么不使用 7zip 或 peaZips 的(都是开源的)控制台并像那样解压它?
  • 嗨,David,感谢您的帮助。我的应用程序中很难包含 7zip 库,因为它非常大(大约 2MB)。我会看看peaZip的。
  • 嗨 jayeff,我现在正在尝试 zip4j。
  • 请发布一个回答,说明您使用了 zip4j 以及如何使用(最好是几行示例代码)。不要在您的问题中编辑答案。

标签: java android passwords unzip


【解决方案1】:

最后,我完成了 zip4j。

  1. 下载 zip4j-1.3.1 并将其导入项目。

  2. 示例代码:

    ZipFile zipFile = new ZipFile(YourZipFile);
    if(zipFile.isEncrypted()){
       zipFile.setPassword(Password);
    }
    zipFile.extractAll(Destination);
    

【讨论】:

  • 值得指出的是 Zip4j 包括对 WinZip 风格的 AES-256 加密的支持。请参阅“示例”包了解如何执行此操作。
  • 我收到错误Error: net.lingala.zip4j.exception.ZipException: file header not found for given file name, cannot extract file 请帮助解决问题。
猜你喜欢
  • 2018-07-26
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2010-10-28
  • 1970-01-01
相关资源
最近更新 更多