gpt4 book ai didi

java - 在 Java 中创建受密码保护的 zip 文件,而无需在磁盘上创建它

转载 作者:行者123 更新时间:2023-12-02 09:27:49 25 4
gpt4 key购买 nike

我需要创建一个 zip 文件。它应该受到密码保护。我正在使用林加拉 jar 。这是我的下面。有办法做到吗?我什至尝试过 zipoutstream,但找不到添加密码的方法。

@Component
public class FileZipUtils {

@Value("${candela.email.zip.folder}")
private String zipBaseDir;

@Value("${candela.email.zip.encryptionmethod:AES}")
private String encryptionMethod;

@Value("${candela.email.zip.encryptionstrength:KEY_STRENGTH_128}")
private String encryptionStrength;

private ZipParameters zipParameters;

@PostConstruct
private void initializeZipProperties() {
zipParameters = new ZipParameters();
zipParameters.setEncryptFiles(true);
zipParameters.setEncryptionMethod(EncryptionMethod.AES);
zipParameters.setAesKeyStrength(AesKeyStrength.KEY_STRENGTH_128);
}

/*
* Creates a zipfile in the zipBaseDir location
*/
public ZipFile createZipFile(String zipFileName,char[] password) {
return new ZipFile(zipBaseDir + "/" + zipFileName,password);
}

/**
* Adds attachment to Zip file
*/
public void addAttachementToZip(ZipFile zipFile, ByteArrayResource fileContentInBytes, String fileName)
throws IOException {
zipParameters.setFileNameInZip(fileName);
zipFile.addStream(fileContentInBytes.getInputStream(), zipParameters);
}

}

最佳答案

zip 文件的最佳解决方案 zip4j lib。 (Github Link)

特点:

  • 从 Zip 文件中创建、添加、提取、更新、删除文件
  • 支持流(ZipInputStream 和 ZipOutputStream)
  • 读取/写入受密码保护的 Zip 文件和流
  • 支持 AES 和 Zip-Standard 加密方法
  • 支持 Zip64 格式
  • 存储(无压缩)和 Deflate 压缩方法
  • 从拆分 Zip 文件(例如:z01、z02、...zip)中创建或提取文件
  • 支持 zip 中的 Unicode 文件名和注释
  • 进度监视器 - 用于集成到应用和面向用户的应用中

关于java - 在 Java 中创建受密码保护的 zip 文件,而无需在磁盘上创建它,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58212574/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com