为了账号安全,请及时绑定邮箱和手机立即绑定

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

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

HUX布斯 2023-09-20 16:58:26
我需要创建一个 zip 文件。它应该受到密码保护。我正在使用林加拉罐子。这是我的下面。有办法做到吗?我什至尝试过 zipoutstream,但找不到添加密码的方法。@Componentpublic 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);    }}
查看完整描述

2 回答

?
www说

TA贡献1775条经验 获得超8个赞

zip 文件 lib 的最佳解决方案zip4j

特征:

  • 创建、添加、提取、更新、从 Zip 文件中删除文件

  • 支持流(ZipInputStream 和 ZipOutputStream)

  • 读/写受密码保护的 Zip 文件和流

  • 支持 AES 和 Zip-Standard 加密方法

  • 支持 Zip64 格式

  • Store(无压缩)和 Deflate 压缩方法

  • 从分割 Zip 文件创建或提取文件(例如:z01、z02、...zip)

  • 支持 zip 中的 Unicode 文件名和注释

  • 进度监视器 - 用于集成到应用程序和面向用户的应用程序


查看完整回答
反对 回复 2023-09-20
?
跃然一笑

TA贡献1826条经验 获得超6个赞

我认为我们需要在磁盘上创建文件。



查看完整回答
反对 回复 2023-09-20
  • 2 回答
  • 0 关注
  • 89 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信