使用zip4j加密和解密文件和目录
2015-07-23 19:15
309 查看
闲话少说,直接看工具类:
然后看测试类:
最后看pom文件:
[code]package com.ilucky.zip4j.util; import java.io.File; import net.lingala.zip4j.core.ZipFile; import net.lingala.zip4j.exception.ZipException; import net.lingala.zip4j.model.ZipParameters; import net.lingala.zip4j.util.Zip4jConstants; /** * @author IluckySi * @since 20150723 */ public class Zip4jUtil { private String srcPath; private String dstPath; private String password = "123456"; public String getSrcPath() { return srcPath; } public void setSrcPath(String srcPath) { this.srcPath = srcPath; } public String getDstPath() { return dstPath; } public void setDstPath(String dstPath) { this.dstPath = dstPath; } public String getPassword() { return password; } public void setPassword(String password) { this.password = password; } /** * 加密 * 支持将某个文件或某个目录下所有的文件加密. * 1.某个文件:D:\\test\\src.zip. * 2某个目录:D:\\test\\src * @return boolean */ public boolean encrypt() { try { if(!new File(srcPath).exists()) { System.out.println("源路径不存在 "+srcPath); return false; } ZipParameters parameters = new ZipParameters(); parameters.setEncryptFiles(true); parameters.setEncryptionMethod(Zip4jConstants.ENC_METHOD_AES); parameters.setAesKeyStrength(Zip4jConstants.AES_STRENGTH_256); parameters.setPassword(password.toCharArray()); File srcFile = new File(srcPath); ZipFile destFile = new ZipFile(dstPath); if(srcFile.isDirectory()) { destFile.addFolder(srcFile, parameters); } else { destFile.addFile(srcFile, parameters); } System.out.println("成功加密文件"); return true; } catch (Exception e) { System.out.println("加密文件发生异常:"+e); return false; } } /** * 解密 * 支持将某个加密文件解压缩到某个指定目录下面. * @return boolean */ public boolean decrypt() { try { if(!new File(srcPath).exists()) { System.out.println("源路径不存在 "+srcPath); return false; } ZipFile srcFile = new ZipFile(srcPath); srcFile.setFileNameCharset("GBK"); srcFile.setPassword(password.toCharArray()); srcFile.extractAll(dstPath); System.out.println("成功解密文件"); return true; } catch (ZipException e) { System.out.println("解密文件发生异常:"+e); return false; } } }
然后看测试类:
[code]package com.ilucky.zip4j.util; /** * @author IluckySi * @since 20150723 */ public class MainTest { public static void main(String[] args) { //加密. Zip4jUtil zip4jUtil = new Zip4jUtil(); zip4jUtil.setSrcPath("D:\\test\\src.zip"); zip4jUtil.setDstPath("D:\\test\\dst.zip"); zip4jUtil.setPassword("123"); zip4jUtil.encrypt(); //解密. zip4jUtil.setSrcPath("D:\\test\\dst.zip"); zip4jUtil.setDstPath("D:\\test\\"); zip4jUtil.setPassword("123"); //zip4jUtil.decrypt(); } }
最后看pom文件:
[code] <dependency> <groupId>net.lingala.zip4j</groupId> <artifactId>zip4j</artifactId> <version>1.3.2</version> </dependency>
相关文章推荐
- 【mongodb系统学习之十】mongodb查询(二)
- Eclipse远程调试(远程服务器端监听)
- leetcode 052 —— N-Queens II
- Android开源项目 异步图片缓存库 Universal-Image-Loader
- Create a geoprocessing tool to buffer a layer and retrieve messages____sync
- Unit Tests Tool - <What is “Mock You”> The introduction to moq #Reprinted#
- Android开发 屏幕适配之像素密度适配
- iOS 证书、描述文件、AppID。
- 再次谈谈easyui datagrid 的数据加载
- SpringMVC template和HttpClient post提交
- git基本使用
- KTV播放原理
- 面试题连接收集
- MySqlHelper
- C语言函数
- Android数据存储之内部存储、外部存储
- 226 Invert Binary Tree
- HDU 5305 Friends (搜索+剪枝) 2015多校联合第二场
- POJ Arctic Network 【最小生成树】
- 转自:熊译:我看软件工程师的职业规划。