首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >允许用户以7zip的速度更新加密压缩的Zip4j

允许用户以7zip的速度更新加密压缩的Zip4j
EN

Stack Overflow用户
提问于 2019-05-23 18:32:57
回答 1查看 373关注 0票数 0

我使用过zip4j来压缩某些文件。它能够正确压缩,并在提取它的同时还要求输入密码。到目前为止,一切都很顺利。现在我面临的问题

  1. 使用密码加密后,您可以看到文件名,如果您用7zip打开,有什么方法可以隐藏这一点吗?
  2. 您可以添加新文件到压缩包中,只需用7zip打开它,然后拖动一个新文件,它将被添加,并允许在没有密码的情况下提取该文件。需要禁用此功能吗?

我的要求是锁定一些文件,用户应该不能操纵压缩。(点1也可以忽略)

我有没有别的,那么这是什么?

代码语言:javascript
复制
final ZipFile zipFile = new ZipFile(outputFile);

final ArrayList filesToAdd = new ArrayList();
for (final String file : fileList) {
    filesToAdd.add(new File(file));
}
// Initiate Zip Parameters
final ZipParameters parameters = new ZipParameters();
parameters.setCompressionMethod(Zip4jConstants.COMP_DEFLATE); // set compression method to
                                                          // deflate compressio
// Set the compression level.
parameters.setCompressionLevel(Zip4jConstants.DEFLATE_LEVEL_NORMAL);
parameters.setEncryptFiles(true);
// Set the encryption method to Standard Zip Encryption
parameters.setEncryptionMethod(Zip4jConstants.ENC_METHOD_STANDARD);
// Set password
parameters.setPassword(password);

zipFile.addFiles(filesToAdd, parameters);
EN

回答 1

Stack Overflow用户

发布于 2019-05-27 20:41:54

根据Zip format specification,您正在寻找的功能称为“强加密”。链接中的"7.0强加密规范“一节介绍了此加密标准。该技术还对zip报头信息进行了加密,因此,如果没有密码,则无法修改zip文件。但是,此功能是专有的和受专利保护的。AFAIK,库/应用程序需要权限才能实现/支持此功能。Zip4j目前不支持此功能。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/56273295

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档