使用zip4j加密和解密文件和目錄
閑話少說,直接看工具類:
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 {
} catch (ZipException e) {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;
} } }</pre>System.out.println("解密文件發生異常:"+e); return false;
然后看測試類: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();
} }</pre>
最后看pom文件:<dependency>
<groupId>net.lingala.zip4j</groupId> <artifactId>zip4j</artifactId> <version>1.3.2</version>
</dependency></pre>
來自:http://blog.csdn.net/sidongxue2/article/details/47026909