如何在Java中加密和解密zip文件

在本文中,我们来学习如何用zip4j库创建受密码保护的压缩文件并将其解压。
依赖让我们先把 zip4j 依赖关系添加到我们的 pom.xml 文件中。
net.lingala.zip4j zip4j 2.9.0压缩一个文件首先,我们将使用zipfile addfile()方法将一个名为afile.txt的文件压缩到一个名为compressed.zip的有密码保护的 zip 文件。
zipparameters zipparameters = new zipparameters();zipparameters.setencryptfiles(true);zipparameters.setcompressionlevel(compressionlevel.higher);zipparameters.setencryptionmethod(encryptionmethod.aes);zipfile zipfile = new zipfile(compressed.zip, password.tochararray());zipfile.addfile(new file(afile.txt), zipparameters);setcompressionlevel一行是可选的。我们可以从fastest到ultra级别中选择(默认是normal)。
在这个例子中,我们使用了aes加密。如果我们想使用zip标准加密,我们只需用zip_standard替换aes。
注意,如果文件 afile.txt 在磁盘上不存在,该方法将抛出一个异常。net.lingala.zip4j.exception.zipexception file does not exist: …
为了解决这个问题,我们必须确保该文件是手动创建并放置在项目文件夹中,或者我们必须从java中创建它。
file filetoadd = new file(afile.txt);if (!filetoadd.exists()) { filetoadd.createnewfile();}另外,在我们完成了新的zipfile之后,需要及时关闭资源:
zipfile.close();压缩多个文件让我们修改一下代码,以便我们能够一次压缩多个文件。
zipparameters zipparameters = new zipparameters();zipparameters.setencryptfiles(true);zipparameters.setencryptionmethod(encryptionmethod.aes);list filestoadd = arrays.aslist( new file(afile.txt), new file(bfile.txt));zipfile zipfile = new zipfile(compressed.zip, password.tochararray());zipfile.addfiles(filestoadd, zipparameters);我们不使用addfile方法,而是使用addfiles()并传入一个list的文件。
压缩一个目录我们可以简单地用addfolder代替addfile方法来压缩一个文件夹。
zipfile zipfile = new zipfile(compressed.zip, password.tochararray());zipfile.addfolder(new file(/users/folder_to_add), zipparameters);创建一个分割的压缩文件我们可以通过使用createsplitzipfile和createsplitzipfilefromfolder方法,``将压缩文件分割成几个文件。
zipfile zipfile = new zipfile(compressed.zip, password.tochararray());int splitlength = 1024 * 1024 * 10; //10mbzipfile.createsplitzipfile(arrays.aslist(new file(afile.txt)), zipparameters, true, splitlength);zipfile.createsplitzipfilefromfolder(new file(/users/folder_to_add), zipparameters, true, splitlength);splitlength的单位是字节。
提取所有文件提取文件也同样简单。我们可以用extractall()方法从我们的compressed.zip中提取所有文件。
zipfile zipfile = new zipfile(compressed.zip, password.tochararray());zipfile.extractall(/destination_directory);提取单个文件如果我们只想从compressed.zip中提取一个文件,我们可以使用extractfile()方法。
zipfile zipfile = new zipfile(compressed.zip, password.tochararray());zipfile.extractfile(afile.txt, /destination_directory);总结综上所述,我们已经学会了如何用zip4j库在java中创建受密码保护的压缩文件并将其解压。

南京宁瑞计量冲压钣金件汽车钣金件冲压折弯件三维激光扫描检测仪厂家提供三维扫描
升腾910和英伟达A100的区别
基于ClockMatrix系列的PHY参考设计
宝马看好MEB电子模块化架构
什么是数字农业建设项目,它有哪些作用
如何在Java中加密和解密zip文件
安谋携手四川打造芯片设计研究院
PCB板制作过程中怎么会出现甩铜现象
天音控股拟定增募资25亿元 强化智能手机等业务布局
LED工艺技术介绍
基美电子针对汽车和工业应用推出三种混合铝聚合物电容器系列
选择加速度传感器时需要考虑哪些问题
互联网新贵OCP搞了十年,到底行不行?
麻省理工研究人员发明可发光植物,让绿色建筑名副其实
GPRS DTU在充电桩行业的应用
长虹能源精选层IPO成功过会:锂电业务亮眼
新能源市场发展的关键拐点已至 广汽新能源早就做好了规划
分享数据中心机房建设应该注意哪些方面-科兰
数据采集IO模块的在热电厂系统中的应用
高通骁龙首款6系5G SoC发布,AI性能提升比上代提升70%