使用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 { 
             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; 
        } 
    } 
}

然后看测试类:

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文件:

 <dependency> 
        <groupId>net.lingala.zip4j</groupId> 
        <artifactId>zip4j</artifactId> 
        <version>1.3.2</version> 
    </dependency>

来自:http://blog.csdn.net/sidongxue2/article/details/47026909

原创文章,作者:ItWorker,如若转载,请注明出处:https://blog.ytso.com/10343.html

(0)
上一篇 2021年7月19日
下一篇 2021年7月19日

相关推荐

发表回复

登录后才能评论