我需要创建一个 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 文件名和注释
进度监视器 - 用于集成到应用程序和面向用户的应用程序
添加回答
举报
0/150
提交
取消