You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Java如何使用zip4j为整个zip压缩包设置密码保护?

Zip4j加密整个压缩包(含文件列表)的实现方案

默认情况下Zip4j的加密配置仅加密压缩包内的文件内容,存储文件列表、文件大小等元数据的中央目录未被加密,因此无需密码即可查看内部文件列表。要实现全加密保护,需开启中央目录加密配置,具体实现如下:


前置要求

使用Zip4j 2.10.0及以上版本,低版本对中央目录加密的兼容性存在缺陷。Maven依赖示例:

<dependency>
    <groupId>net.lingala.zip4j</groupId>
    <artifactId>zip4j</artifactId>
    <version>2.11.5</version>
</dependency>

完整实现代码

import net.lingala.zip4j.ZipFile;
import net.lingala.zip4j.model.ZipParameters;
import net.lingala.zip4j.model.enums.AesKeyStrength;
import net.lingala.zip4j.model.enums.EncryptionMethod;
import java.io.File;

public class EncryptedZipCreator {
    public static void main(String[] args) {
        // 配置压缩包路径与密码
        String zipOutputPath = "/your/target/path/protected.zip";
        char[] zipPassword = "your_custom_password".toCharArray();

        // 配置加密参数
        ZipParameters parameters = new ZipParameters();
        // 开启文件加密
        parameters.setEncryptFiles(true);
        // 必须使用AES加密模式,传统Zip标准加密不支持中央目录加密
        parameters.setEncryptionMethod(EncryptionMethod.AES);
        // 设置AES密钥强度,可选128、192、256位
        parameters.setAesKeyStrength(AesKeyStrength.KEY_STRENGTH_256);
        // 核心配置:加密中央目录,开启后必须输入密码才能查看文件列表
        parameters.setEncryptCentralDirectory(true);

        try (ZipFile zipFile = new ZipFile(zipOutputPath, zipPassword)) {
            // 添加单个文件到压缩包
            zipFile.addFile(new File("/path/to/source/file.docx"), parameters);
            // 批量添加整个文件夹到压缩包
            zipFile.addFolder(new File("/path/to/source/folder"), parameters);
        } catch (Exception e) {
            e.printStackTrace();
        }
    }
}

注意事项

  • 该加密方式属于Zip规范的扩展特性,主流压缩工具(WinRAR 5+、7-Zip 16+、MacOS自带归档工具、Unzip 6+)均已支持,仅部分老旧的解压工具可能无法识别该加密格式。
  • 密码推荐使用char[]类型存储,使用完成后可手动清空数组内容,降低内存中明文密码泄露的风险。
  • 若需要对已存在的压缩包添加全加密保护,需先解压原有压缩包,再按照上述步骤重新创建加密压缩包,无法直接给已有非加密压缩包添加中央目录加密。

内容的提问来源于stack exchange,提问作者HARISH KUMAR B

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.24 15:36:07