Java实现压缩⽂件和加密(基于zip4j)⽂章⽬录
前⾔
web应⽤中如何对⽂件进⾏压缩,加密,你了解吗?笔者这⾥提供⼀种实现⽅式,仅供参考!
⼀、zip4j是什么?
由于java⾃带的zip⼯具不⽀持加密,zip4j作为⼀个开源的项⽬,解决了zip加密解密等问题
java加密方式有哪些⼆、使⽤步骤
这⾥提供两种⽅式,第⼀种不需要下载jar包,第⼆种需要本地下载zip4j的jar包,下载链接在⽂章底部
1.引⼊jar包(maven中直接引⼊)
代码如下(⽰例):
<dependency>
<groupId>net.lingala.zip4j</groupId>
<artifactId>zip4j</artifactId>
<version>1.3.2</version>
</dependency>
2.本地下载jar包引⽤
1下载jar包
2在项⽬中添加
在src⽬录下新建lib⽬录,将jar包添加到lib⽬录下
在pom⽂件中引⽤,注意路径
<dependency>
<groupId>zip4j</groupId>
<artifactId>zip4j</artifactId>
<version>1.3.1</version>
<scope>system</scope>
<systemPath>${basedir}/src/lib/zip4j-1.3.1.jar</systemPath>
</dependency>
3.代码实现
/**
* @Title: encrypt_zip
* @Description:将指定路径下的⽂件压缩⾄指定zip⽂件,并以指定密码加密,若密码为空,则不进⾏加密保护
* @param src_file 待压缩⽂件路径
* @param dst_file zip路径+⽂件名
* @param encode 加密密码
* @return
*/
public static void encrypt_zip(String src_file, String dst_file, String encode){
File file =new File(src_file);
ZipParameters parameters =new ZipParameters();
parameters.setCompressionMethod(Zip4jConstants.COMP_DEFLATE);//压缩⽅式
parameters.setCompressionLevel(Zip4jConstants.DEFLATE_LEVEL_NORMAL);// 压缩级别
parameters.setEncryptFiles(true);
parameters.setEncryptionMethod(Zip4jConstants.ENC_METHOD_STANDARD);//加密⽅式
parameters.CharArray());//设置密码
try{
ZipFile zipFile =new ZipFile(dst_file);
zipFile.setFileNameCharset("gbk");
zipFile.addFile(file, parameters);
}catch(net.ption.ZipException e){
e.printStackTrace();
}
}
总结
本地实现的话到这⾥就结束了,但是⼀般项⽬中不会直接调⽤本地⽂件绝对路径,⼀般是导出项⽬中的⽂件,这⾥就需要在正常的下载中间添加⼀个中间缓存路径⽤于压缩加密,具体实现⽅式参见我的另⼀篇⽂章

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。