admin管理员组文章数量:1639675
创建于 2021年6月15日
作者:想想
文章目录
- java 加密压缩文件
- 1、引入依赖
- 2、加密压缩
java 加密压缩文件
1、引入依赖
<dependency>
<groupId>net.lingala.zip4j</groupId>
<artifactId>zip4j</artifactId>
<version>1.3.2</version>
</dependency>
阿里仓库可下载,如果不了解 zip4j 请不要私自修改版本,版本改动还是蛮大的
2、加密压缩
/**
* @Description: 将指定路径下的文件压缩至指定zip文件,并以指定密码加密,若密码为空,则不进行加密保护
* @param srcFileName 待压缩待文件
* @param zipFileName zip路径+文件名
* @param password 加密密码
*/
public static void zipFilesAndEncrypt(ArrayList<File> srcFileName, String zipFileName, String password){
// zipFileName 如果存在则无法压缩
File file = new File(zipFileName);
if (file.exists()) {
FileUtils.deleteFile(zipFileName);
}
ZipParameters parameters = new ZipParameters();
parameters.setCompressionMethod(Zip4jConstants.COMP_DEFLATE);//压缩方式
parameters.setCompressionLevel(Zip4jConstants.DEFLATE_LEVEL_NORMAL);//压缩级别
//StringUtils 这里引入的 Spring 的字符串工具
if (StringUtils.isEmpty(password)) {
parameters.setEncryptFiles(false);
}else {
parameters.setEncryptFiles(true);
parameters.setEncryptionMethod(Zip4jConstants.ENC_METHOD_AES);//加密方式
parameters.setAesKeyStrength(Zip4jConstants.AES_STRENGTH_256);//设置aes加密强度
// 这里写入密码
parameters.setPassword(password);
}
try {
ZipFile zipFile = new ZipFile(zipFileName);
zipFile.addFiles(srcFileName, parameters);
} catch (ZipException e) {
e.printStackTrace();
}
}
需要注意的地方
- 所有文件均以
ArrayList<File>
的格式传入方法内,如果是处理一个文件夹下的所有文件,请将该文件中所有文件遍历获取到文件名再放入ArrayList<File>
中,如果想直接丢进去一个一整个文件夹压缩,可以先将这个文件夹进行压缩后,再对压缩文件二次压缩 - 输出的文件夹必须要写全路径
版权声明:本文标题:java 加密压缩文件 内容由热心网友自发贡献,该文观点仅代表作者本人, 转载请联系作者并注明出处:https://m.elefans.com/dongtai/1729293746a1194474.html, 本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容,一经查实,本站将立刻删除。
发表评论