带秘钥的文件解压缩

我这次运用的有秘钥的解密,用了ZIP4J;

pom文件中这样引用:

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

java代码如下:

/**
     * 使用给定密码解压指定的ZIP压缩文件到指定目录
     * <p>
     * 如果指定目录不存在,可以自动创建,不合法的路径将导致异常被抛出
     *
     * @param zip
     *            指定的ZIP压缩文件
     * @param dest
     *            解压目录
     * @param passwd
     *            ZIP文件的密码
     * @return 解压后文件数组
     * @throws ZipException
     *             压缩文件有损坏或者解压缩失败抛出
     */
    public static File[] unzip(File zipFile, String dest, String passwd) throws ZipException {
        ZipFile zFile = new ZipFile(zipFile);
        zFile.setFileNameCharset("UTF-8");
        if (!zFile.isValidZipFile()) {
            throw new ZipException("压缩文件不合法,可能被损坏.");
        }
        File destDir = new File(dest);
        if (destDir.isDirectory() && !destDir.exists()) {
            destDir.mkdir();
        }
        if (zFile.isEncrypted()) {
            zFile.setPassword(passwd.toCharArray());
        }
        zFile.extractAll(dest);

        List<FileHeader> headerList = zFile.getFileHeaders();
        List<File> extractedFileList = new ArrayList<File>();
        for (FileHeader fileHeader : headerList) {
            if (!fileHeader.isDirectory()) {
                extractedFileList.add(new File(destDir, fileHeader.getFileName()));
            }
        }
        File[] extractedFiles = new File[extractedFileList.size()];
        extractedFileList.toArray(extractedFiles);
        return extractedFiles;
    }

很方便,我参考的http://blog.csdn.net/silversupersoul/article/details/44221607这篇文章,详细的点此连接

时间: 2024-08-01 17:02:04

带秘钥的文件解压缩的相关文章

openvpn 证书秘钥结合用户密码双重认证(1)服务器端设置

Openvpn 环境: 拓扑图: 出差人员win7 client 115.16.1.8/30 | 郑州站点------------互联网-------上海站点 内网:192.168.20.0   |         内网:192.168.10.0.24 | eth0 :   1.1.1.1/30 北京Open VPN(iptables) eth1:  192.168.0.1/24 | eth0:  192.168.0.100/24 公司内网 web server 希望屏幕前的你,能看懂O(∩_∩

GIT文件的三种状态 &amp; Git SSH秘钥问题

一:GIT文件的三种状态 1-- 在目录下新建README.txt文件,接着,使用"git status"查看文件状态,如 可以看到,Git友好的标示出README.txt为"Untracked files",并且提示使用"git add <file>..."的命令将文件包含到待提交清单中. 2-- 按照提示,使用"git add README.txt"命令,然后,使用"git status"查

3.以太坊之秘钥文件

1.账号 账号在以太坊中扮演着核心的角色.以太坊共有两种账号类型: 外部账号( EOA) 和合约账号. 在这里我们先重点关注外部账号,简称账号.合约账号简称合约,合约账户在合约章节中详细介绍. 外部账户和合约账户都是账户的通用概念,这些账户其实都是状态对象.外部账户的余额就是外部账户的一个状态对象,合约账户的状态除了有余额还有合约存储. 所有账户的状态都是以太坊网络的状态,以太坊网络的状态随着每一个区块的更新而变化.用户通过交易和以太坊区块链进行交互,在这个过程中,账户起着至关重要,不可缺少的作

Linux远程秘钥登录方式

一.putty 1.puttygen同时生成一个公钥和一个私钥(私钥可以设置密码) 2.公钥复制到/root/.ssh/authorized_keys(权限改为600),目录/root/.ssh改为700,私钥文件保存到本地: 3.关闭防火墙selinux和iptables,selinux 临时关闭 setenforce 0,永久关闭 /etc/seliinux/config 中改selinux=disabled 临时清楚iptables:iptables -F ,永久关闭iptables,上述

利用OpenSSH实现基于秘钥的认证

利用OpenSSH实现基于秘钥的认证 SSH协议介绍:     SSH是Secure Shell的缩写,意思是安全的shell          目前版本有 ssh v1和ssh  v2:在目前工作中大多都使用ssh v2版,ssh  v1已经不安全,尽量不使用              ssh v1:基于CRC-----32做MAC(Message Authentication Code),不安全              ssh v2:基于双方主机的协商最安全的MAC的方式:基于DH算法做秘

APICloud集成支付宝--RSA秘钥生成详解

RSA 和 OpenSSL 介绍 记得大学里有门课叫<电子支付与安全>,这里面就讲了双重秘钥加密,主要内容如下: RSA 是一种非对称的签名算法,即签名密钥(私钥)与验签密钥(公钥)是不一样的, 私钥用于签名,公钥用于验签.在与支付宝交易中,会有 2 对公私钥,即商户公私钥,支付宝公私钥.使用这种算法可以起到防止数据被篡改的功能,保证支付订单和支付结果不可抵赖(商户私钥只有商户知道). OpenSSL 是基于众多的密码算法.公钥基础设施标准以及 SSL 协议安全开 发包.通过 OpenSSL

脚本应用之五:免密码秘钥登录 批量实现

测试系统版本:CentOS 6.4 作用:跳板机远程被管理服务器,通常使用秘钥登录,实现此操作时,拷贝秘钥仍然需要输入一次登录密码,此脚本实现自动生成密钥对并全程无交互批量拷贝公钥到被管理服务器,并自动禁用被管理端的ssh密码登录,使其只允许秘钥登录(免密码秘钥登录实现,参考:http://lingyi.blog.51cto.com/2837715/1763747). 实现:借助 ssh-copy-id 脚本的拷贝公钥功能和expect自动应答工具,实现无交互批量拷贝公钥的功能.(附件带ssh-

linux7-docker私有仓库nginx秘钥验证搭

这是一个企业使用的docker私有仓库搭建方法通过nginx CA密钥对验证提高安全性.保证数据不丢失,提供仓库容器外部存储 首先安装docker和nginx的支持包,ssl秘钥验证等 docker用yum安装即可 nginx 支持吧 秘钥等也用yum相关包是 yum -y install pcre-devel zlib-devel openssl openssl-devel秘钥对需要解析域名验证所以需要做DNS懒得做直接修改hosts文件vim /etc/hosts192.168.1.0  

远程连接Linux、设置秘钥

使用putty远程连接Linux首先先去下载putty尽量去官网下载,官网版的带有PUTTYGEN,我们后面用秘钥的时候会用到 下载这个版本32位就行了,32位在64位系统正常运行下载完成后打开putty这个位置输入需要远程的服务器IP地址如果不知道服务器ip需要去本机查看登录到服务器,输入ip addr查看IP输入完IP地址,后面的Port默认22,如果服务器上端口号修改过的,这上面也要修改让putty记住登录地址,方便以后登录在这个位置给服务器输入一个名字,然后恩Save保存,你保存的名字就