admin管理员组文章数量:1516870
创建于 2021年6月15日
作者:想想
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 加密密码
*/publicstaticvoidzipFilesAndEncrypt(ArrayList<File> srcFileName,String zipFileName,String password){// zipFileName 如果存在则无法压缩File file =newFile(zipFileName);if(file.exists()){FileUtils.deleteFile(zipFileName);}ZipParameters parameters =newZipParameters();
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 =newZipFile(zipFileName);
zipFile.addFiles(srcFileName, parameters);}catch(ZipException e){
e.printStackTrace();}}需要注意的地方
-
所有文件均以
ArrayList<File>的格式传入方法内,如果是处理一个文件夹下的所有文件,请将该文件中所有文件遍历获取到文件名再放入ArrayList<File>中,如果想直接丢进去一个一整个文件夹压缩,可以先将这个文件夹进行压缩后,再对压缩文件二次压缩 - 输出的文件夹必须要写全路径
版权声明:本文标题:Java秘籍:一步到位的加密压缩,从创建ZipFile到目的地文件 内容由网友自发贡献,该文观点仅代表作者本人, 转载请联系作者并注明出处:https://www.betaflare.com/web/1773312555a3277755.html, 本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容,一经查实,本站将立刻删除。


发表评论