使用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>

版权声明:本文为博主原创文章,未经博主允许不得转载。

时间: 2024-08-28 07:29:11

使用zip4j加密和解密文件和目录的相关文章

(8) openssl rsautl(签名/验证签名/加解密文件)和openssl pkeyutl(文件的非对称加密)

rsautl是rsa的工具,相当于rsa.dgst的部分功能集合,可用于生成数字签名.验证数字签名.加密和解密文件. pkeyutl是非对称加密的通用工具,大体上和rsautl的用法差不多,所以此处只解释rsautl. openssl rsautl [-in file] [-out file] [-inkey file] [-pubin] [-certin] [-passin arg] [-sign] [-verify] [-encrypt] [-decrypt] [-hexdump] open

openssl的加密、解密以及构建私有CA

SSL.TLS介绍: SSL:安全套接字(Secure Socket Layer,SSL)协议是Web浏览器与Web服务器之间安全交换信息的协议,提供两个基本的安全服务:鉴别与保密. TLS:安全传输层协议(Transport Layer Security)用于在两个通信应用程序之间提供保密性和数据完整性.该协议由两层组成: TLS 记录协议(TLS Record)和 TLS 握手协议(TLS Handshake).较低的层为 TLS 记录协议,位于某个可靠的传输协议(例如 TCP)上面,与具体

openssl加密、解密及建立私有CA

OpenSSL:俗称安全套接字 它可以实现数据加密: SSL全称为:Secure Socket Layer可以在Internet上提供秘密性传输,其目标是保证两个应用间通信的保密性和可靠性,SSL能使用户/服务器应用之间的通信不被攻击者窃听,并且始终对服务器进行认证,还可选择对用户进行认证.SSL协议要求建立在可靠的传输层协议(TCP)之上.SSL协议在应用层协议通信之前就已经完成加密算法.通信密钥的协商及服务器认证工作.在此之后应用层协议所传送的数据都会被加密,从而保证通信的私密性. 一.Op

openssl加密、解密及自建CA

SSL是Secure Socket Layer(安全套接层协议)的缩写, OpenSSL提供的功能相当强大和全面,囊括了主要的密码算法.常用的密钥和证书封装管理功能以及SSL协议,并提供了丰富的应用程序供测试或其它目的使用. 检查有没有安装openssl包,如果没有安装,则先安装openssl,这里用yum安装: [[email protected] ~]# rpm -q openssl openssl-1.0.1e-30.el6.x86_64 [[email protected] ~]# yu

文件、目录加密解密

1.文件加密和解密: # openssl des -salt -in file -out file.des # openssl des -d -salt -in file.des -out file 那个 file 可以是归档文件(tar archive). 2.目录 归档并加密整个目录 # tar -cf - directory | openssl des -salt -out directory.tar.des # 加密 # openssl des -d -salt -in director

用openssl对文件加密及解密

Openssl是一个开源的用以实现SSL协议的产品,它主要包括了三个部分:密码算法库.应用程序.SSL协议库.Openssl实现了SSL协议所需要的大多数算法. 下面我将单介绍使用Openssl进行文件的对称加密操作. 一.Openssl支持的加密算法有: -aes-128-cbc -aes-128-cfb -aes-128-cfb1 -aes-128-cfb8 -aes-128-ecb -aes-128-ofb -aes-192-cbc -aes-192-cfb -aes-192-cfb1 -

linux下加密文件和目录

在Linux下,我们主要有两种加密文件和目录的方法.一种是文件系统级别的加密,在这种加密中,你可以选择性地加密某些文件或者目录(如,/home/alice).对我而言,这是个十分不错的方法,你不需要为了启用或者测试加密而把所有一切重新安装一遍.然而,文件系统级别的加密也有一些缺点.例如,许多现代应用程序会缓存(部分)文件你硬盘中未加密的部分中,比如交换分区./tmp和/var文件夹,而这会导致隐私泄漏. 另外一种方式,就是所谓的全盘加密,这意味着整个磁盘都会被加密(可能除了主引导记录外).全盘加

java spring中对properties属性文件加密及其解密

原创整理不易,转载请注明出处:java spring中对properties属性文件加密及其解密 代码下载地址:http://www.zuidaima.com/share/1781588957400064.htm 加密类: package com.zuidaima.commons.util; import java.io.ByteArrayInputStream; import java.io.ByteArrayOutputStream; import java.io.File; import

文件加密及解密

1 using System; 2 using System.Collections.Generic; 3 using System.Text; 4 using System.IO; 5 using System.Runtime.Serialization; 6 using System.Security.Cryptography; 7 8 namespace Sky.Decrypt 9 { 10 /// <summary> 11 /// 解密 12 /// </summary>