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

使用Zip4j创建压缩包级密码保护的Zip文件问题求助

解决Zip包仅文件加密、目录明文可见的问题

你当前的代码只对Zip包内的文件内容进行了加密,但没有加密文件名和目录结构,所以能直接看到里面的文件名,只有打开文件时才需要密码。要实现打开Zip包就弹出密码验证,需要同时启用文件名加密。

假设你用的是Zip4j库(从代码里的ZipParameters、EncryptionMethod.AES可以判断),只需要给ZipParameters添加一行配置即可:

ZipParameters zipParameters = new ZipParameters();
zipParameters.setEncryptFiles(true);
zipParameters.setEncryptionMethod(EncryptionMethod.AES);
// 关键:启用文件名/目录加密,打开Zip时就需要验证密码
zipParameters.setEncryptFileName(true);

List<File> filesToAdd = Arrays.asList(new File("aFile.txt"), new File("bFile.txt"));

ZipFile zipFile = new ZipFile("compressed.zip", "password".toCharArray());
zipFile.addFiles(filesToAdd, zipParameters);

关键参数说明

  • setEncryptFileName(true):这是让Zip包在打开时就要求输入密码的核心配置,它会把目录结构和文件名一起加密,没有正确密码的话无法查看任何内容列表。
  • AES加密方式:相比传统Zip加密更安全,建议保持使用。

修改后生成的Zip包,不管用什么解压工具打开,都会先弹出密码输入窗口,验证通过后才能看到里面的文件和目录。

内容的提问来源于stack exchange,提问作者shimiA

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.18 16:52:02