文件加密压缩

在现如今已经可以实现大部分功能的互联网需求中,安全成为了需要的非必需品,工作需求中会遇到对导出的 excel 报表 做加密压缩的问题,今天有时间总结一下,我这里简单列举功能代码,连带其它代码文末会一并给出。

1.单个文件加密压缩

单个文件加密方法,需传输 3 个参数:被压缩源文件,压缩目标文件和加密密钥,如下

/**

* @Title: encrypt_zip

* @Description:将指定路径下的文件压缩至指定zip文件,并以指定密码加密,若密码为空,则不进行加密保护

* @param src_file 待压缩文件路径

* @param dst_file zip路径+文件名

* @param encode 加密密码

* @return

*/

public static void encrypt_zip(String src_file, String dst_file, String encode) {

File file = new File(src_file);

ZipParameters parameters = new ZipParameters();

parameters.setCompressionMethod(Zip4jConstants.COMP_DEFLATE);//压缩方式

parameters.setCompressionLevel(Zip4jConstants.DEFLATE_LEVEL_NORMAL); // 压缩级别

parameters.setEncryptFiles(true);

parameters.setEncryptionMethod(Zip4jConstants.ENC_METHOD_STANDARD);//加密方式

parameters.setPassword(encode.toCharArray());//设置密码

try {

ZipFile zipFile = new ZipFile(dst_file);

zipFile.setFileNameCharset("gbk");

zipFile.addFile(file, parameters);

} catch (ZipException e) {

e.printStackTrace();

}

}

2.多文件加密压缩

多文件加密压缩和单文件类似,但是,这个方法包含上面的方法,甚至功能上可以替换上面方法,具体看下 code

/**

* @Title: zipFilesAndEncrypt

* @Description: 将指定路径下的文件压缩至指定zip文件,并以指定密码加密,若密码为空,则不进行加密保护

* @param srcFileName 待压缩文件路径 或 文件夹路径

* @param zipFileName zip路径+文件名

* @param password 加密密码

* @return

*/

public static void zipFilesAndEncrypt(String srcFileName,String zipFileName,String password){

if(StrTool.is_empty(srcFileName) || StrTool.is_empty(zipFileName)){

System.out.println("请求的压缩路径或者文件名有误");

return;

}

try {

ZipParameters parameters = new ZipParameters();

parameters.setCompressionMethod(Zip4jConstants.COMP_DEFLATE);//压缩方式

parameters.setCompressionLevel(Zip4jConstants.DEFLATE_LEVEL_NORMAL);//压缩级别

if(!StrTool.is_empty(password)){

parameters.setEncryptFiles(true);

parameters.setEncryptionMethod(Zip4jConstants.ENC_METHOD_STANDARD);//加密方式

parameters.setPassword(password);

}

ArrayList filesToAdd=getFiles(srcFileName);

ZipFile zipFile = new ZipFile(zipFileName);

zipFile.setFileNameCharset("gbk");

zipFile.addFiles(filesToAdd, parameters);

} catch (ZipException e) {

System.out.println("文件压缩出错");

e.printStackTrace();

}

}

//通过路径获取压缩文件集合

private static ArrayList getFiles(String srcFileName){

ArrayList filesToAdd = new ArrayList();

File file=new File(srcFileName);

File[] files = new File[0];

if(file.isDirectory()){

files = file.listFiles();

for(int i=0;i

if(files[i].getName().endsWith(".xls")){//xls结尾的excel添加压缩集合

filesToAdd.add(new File(files[i].getPath()));

System.out.println("文件:"+files[i].getPath());

}

}

} else {

filesToAdd.add(new File(file.getPath()));

}

return filesToAdd;

}

具体代码请关注个人公众号【charmsongo】留言「zip」获取

说在最后,如果有什么问题,请留言,我会尽量在第一时间给您答复

java多个文件加密压缩_java中文件如何加密压缩?相关推荐

  1. Java文件的状态_java中文件的状态

    如何知道文件的状态,即应用程序是否被阻止且是否阻塞.在java中,如果有一个API,或者您可以使用Java IO. 谢谢. 解决方法: 如果您询问文件锁定,则以下示例来自Example Depot,显 ...

  2. java文件复制速度_java中文件复制得速度测试

    //需要将apache开发的两个插件包拷到lib目录下:commons-fileupload-1.2.2.jar  commons-io-2.0.1.jar package com.nay.servl ...

  3. java绕过加密密码_JAVA中使用MD5加密实现密码加密

    1.新建Md5.java package com.loger.md5; import java.io.UnsupportedEncodingException; import java.securit ...

  4. java 压缩加密_java中文件如何加密压缩?

    @ 文件加密压缩 在现如今已经可以实现大部分功能的互联网需求中,安全成为了需要的非必需品,工作需求中会遇到对导出的 excel 报表 做加密压缩的问题,今天有时间总结一下,我这里简单列举功能代码,连带 ...

  5. java压缩zip文件夹错误_Java将文件或者文件夹压缩成zip(修复文件夹中存在多个文件报Stream Closed错误问题)...

    项目场景: Java将文件或者文件夹压缩成zip(修复文件夹中存在多个文件报Stream Closed错误问题) 问题描述: 最近的项目需要将多级文件夹压缩成zip,网上找了几个工具类,都会报错,所以 ...

  6. java解压zip包_Java中文件的压缩与解压,每天进步一点点系列

    使用java.util.zip包,实现文件的压缩与解压,并提供了下载方法 注意 无论是调用createNewFile()创建文件,还是在创建输出流时由输出流负责创建文件,都必须保证父路径已经存在,否则 ...

  7. java 接口 安全加密_Java中的安全加密

    java 接口 安全加密 上一次我写关于密码学的文章时 ,我概述了Apache Shiro加密API,并展示了如何使用其两个对称密码. 我还写道:"您不需要在应用程序中加密和解密敏感数据的更 ...

  8. java 文件压缩_java实现文件压缩

    java实现文件压缩:主要是流与流之间的传递 代码如下: package com.cst.klocwork.service.zip; import java.io.File; import java. ...

  9. java 流压缩_java之IO流:压缩文件

    在java的学习中,IO流是一个避不开的话题.在java日常的学习和使用中,为了给不同的场景提供不同的用途,IO流拥有一个庞大的方法集合.虽然给使用者提供了极大的便利,但此同时也带来了学习时的异常冗杂 ...

  10. java mp3文件压缩_java实现文件压缩

    java实现文件压缩:主要是流与流之间的传递 代码如下: package com.cst.klocwork.service.zip; import java.io.File; import java. ...

最新文章

  1. window10 系统查看控制面板的方法
  2. Halcon|读取3D相机点云数据
  3. Python str 函数 - Python零基础入门教程
  4. 49 - 算法 - 二叉树 - leetcode108.-将有序数组转换为二叉搜索树-中序遍历 - vector
  5. 分数等级_山东新高考:quot;6选3quot;等级考分数是怎么换算出来的
  6. datetime数据类型_当pandas遇上数据类型问题
  7. 在 WPF 程序中使用矢量图
  8. 如何做肌电信号手势识别?
  9. linux日志关键词高亮,【转载】Linux使用tailf高亮显示关键字
  10. 23西南大学电子信息907专硕考研经验贴
  11. windows系统镜像修复计算机,为你详解win7系统还原及映像修复功能
  12. 未来-YLB-跳蚤市场:跳蚤市场(flea market)
  13. Ruby-学习之路1.1
  14. C语言简单的链表的创建(正向和反向)
  15. lrd热加载方式启动本地web服务(我用于从github把别人服务器代码拉倒本地去搭建自己的网络服务)
  16. 支付宝schlum url 启动指定界面
  17. java英语介绍_java自我介绍英语口语
  18. HTTP 传输编码增大了传输量,只为解决这一个问题 | 实用 HTTP
  19. linux怎么在终端里查系统信息,Neofetch:在终端中显示Linux系统信息
  20. LaTex的表格、图片、参考文献的基本操作

热门文章

  1. 爬虫:获取OLD的Oxford 3000 and 5000
  2. 整站优化与网页优化的区别
  3. 伊利诺伊大学厄本那 香槟分校计算机科学,美国伊利诺伊大学厄本那香槟分校专业设置...
  4. 2022年系统架构设计师考试大纲
  5. python100个必备包_这套python教程超详细,包你1小时入门Python,100天摇身变大牛...
  6. 微观经济学第七周作业(生产函数,规模报酬,投入产出)
  7. [转载]主流漫游技术-OKC802.11r介绍
  8. [USACO09NOV]Job Hunt
  9. 加载驱动时提示“驱动服务启动失败”或者“此驱动程序被阻止加载”
  10. vsd格式文件用什么打开? .vsd