我正在try 通过以下代码创建受密码保护的压缩文件:

    ZipParameters zipParameters = new ZipParameters();
    zipParameters.setEncryptFiles(true);
    zipParameters.setEncryptionMethod(EncryptionMethod.AES);

    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);

问题是密码位于创建的压缩包中的文件级别,而不是压缩包本身. 这意味着在创建Zip之后,我可以输入Zip,但我必须输入密码才能打开"aFile.txt"或"bFile.txt".我想要的是,当我试图打开压缩文件时,密码窗口会在我可以看到压缩文件中的文件名之前出现. 如有任何帮助,我们将不胜感激,并提前表示感谢.

推荐答案

这是ZIP格式的限制.像文件名和文件夹 struct 这样的元数据没有加密.如果您也需要对这些文件进行加密,请重新对文件进行ZIP压缩(只需要对外部ZIP进行加密)或使用其他压缩格式.

Java相关问答推荐

如何在Java中对自定义协议进行主机名验证?

如何使用CSS为选定但未聚焦的表格行设置背景 colored颜色 ?

Annotation @ Memphier无法正常工作,并表示:class需要一个bean,但找到了2个bean:

Java取消任务运行Oracle查询通过JDBC—连接中断,因为SQLSTATE(08006),错误代码(17002)IO错误:套接字读取中断

Java中后期绑定的替代概念

Apache POI:使用反射获取zoom 级别

S的字符串表示是双重精确的吗?

try 创建一个对象,使用它,然后使用一条语句将其存储为列表

对字符串长度进行排序,但颠倒了顺序(最长字符串在前)

匹配一组字符或另一组字符

如何从日期中截取时间并将其传递给组件?

使用存储在字符串变量中的路径目录打开.pdf文件

为什么当我创建Robot对象时,JavaFX引发IlLegalStateException异常?

在学习Spring时,通过构造函数参数0表达了不满意的依赖关系

在Java 15应用程序中运行Java脚本和Python代码

Android Studio模拟器没有互联网

使IntelliJ在导入时优先 Select 一个类或将另一个标记为错误

在权限列表中找不到我的应用程序

OpenJDK20:JEP434:Foreign Function&;内存API(第二次预览)

Jackson YAML:支持锚点扩展/覆盖