使用zip4j加密和解密文件和目錄

jopen 9年前發布 | 2K 次閱讀 Java

閑話少說,直接看工具類:

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;
      
      } } }</pre>
      然后看測試類:
      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

 本文由用戶 jopen 自行上傳分享,僅供網友學習交流。所有權歸原作者,若您的權利被侵害,請聯系管理員。
 轉載本站原創文章,請注明出處,并保留原始鏈接、圖片水印。
 本站是一個以用戶分享為主的開源技術平臺,歡迎各類分享!