目录

  • 文件加密压缩

    • 1.单个文件加密压缩
    • 2.多文件加密压缩

@(终于等到你)

文件加密压缩

在现如今已经可以实现大部分功能的互联网需求中,安全成为了需要的非必需品,工作需求中会遇到对导出的 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<File> 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<File> getFiles(String srcFileName){ArrayList<File> filesToAdd = new ArrayList<File>();File file=new File(srcFileName);File[] files = new File[0]; if(file.isDirectory()){files = file.listFiles();for(int i=0;i<files.length;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」获取

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

转载于:https://www.cnblogs.com/charmsongo/p/9860615.html

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

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

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

  2. java AES文件流加密

    java AES文件流加密 文章转载自:https://www.cnblogs.com/gne-hwz/p/14736496.html java工具类-对称加密算法AES 加密文件流 工具类出自jdk ...

  3. java直接调用复制文件,java中文件复制的4种方式,java文件的复制

    java中文件复制的4种方式,java文件的复制 今天一个同事问我文件复制的问题,他一个100M的文件复制的指定目录下竟然成了1G多,吓我一跳,后来看了他的代码发现是自己通过字节流复制的,定义的字节数 ...

  4. java对密码进行加密的方法_如何在JAVA中使用MD5加密对密码进行加密

    如何在JAVA中使用MD5加密对密码进行加密 发布时间:2020-11-25 17:12:40 来源:亿速云 阅读:118 作者:Leah 本篇文章为大家展示了如何在JAVA中使用MD5加密对密码进行 ...

  5. java中的md5加密_java中的MD5加密

    java中的MD5加密 2016-01-22 09:07:00 admin 原创 1144 摘要:java中的MD5加密 /** * * md5加密 * @author LiuJiawan * @da ...

  6. java中文件的操作讲解

    1.基本概念的理解 绝对路径:绝对路径就是你的主页上的文件或目录在硬盘上真正的路径,(URL和物理路径)例如: C:\xyz\test.txt 代表了test.txt文件的绝对路径.http://ww ...

  7. Java中的AES加密和解密(CBC模式)

    通过有线方式传输诸如纯文本密码之类的机密数据总是容易受到安全性的影响,始终建议对此类信息进行加密并使用SSL传输这些机密数据.Java为此提供了多种加密算法.在本文中,我们将讨论Java中具有CBC模 ...

  8. java中文件处理之图片_在Java 7中处理文件

    java中文件处理之图片 以下是The Well-Grounded Java Developer的草稿的修改后的片段. 它使您快速了解与以前版本相比,在Java 7中操作文件要容易得多. 通过使用新的 ...

  9. file相对路径java_浅谈java 中文件的读取File、以及相对路径的问题

    一.对于java项目中文件的读取 1.使用system 或是 系统的properties对象 ①直接是使用 string relativelypath=system.getproperty(" ...

最新文章

  1. 软考下午题详解---uml图
  2. Linux ext2文件系统小结
  3. SQLSERVER DISTINCT的反例
  4. AlwaysOn只读路由配置
  5. java object... arguments_Java面试之基础题---对象Object
  6. Object-C,NSArraySortTest,数组排序3种方式
  7. 联想计算机CDROM启动,联想电脑光驱启动问题?
  8. java apk安装路径_android apk安装过程源码解析
  9. 如何在C++中嵌入JAVA程序
  10. MySQL查询语句(select)详解
  11. 车仪表台上的装饰_@云浮车主:车内装饰品摆放不当将被处罚
  12. 37 岁学编程,发现第一个 Bug,创造商业编程语言 | 人物志
  13. mybatis-plus根据多个字段排序_PHP中Thinkphp5框架的多字段排序
  14. FTT字体绘制,2D阶段
  15. UI自动化学习过程get的知识点
  16. 修改input file 文件上传的样式
  17. x80hd装linux,台电X80HD:双系统切换的方法演示_台电 X80HD_平板电脑评测-中关村在线...
  18. CentOS7如何设置屏幕不休眠
  19. hive笔记(与上一偏 《hadoop集群搭建》结合)
  20. 做H5页面需要学什么

热门文章

  1. 爬虫实现原理与实现技术
  2. Django day17 博客项目(一)
  3. TCP BBR - 如何安装、启动、停止BBR!
  4. hdu-2717(基础搜索bfs)
  5. Cookie文件内容的含义
  6. ubutn下安装英伟达显卡驱动
  7. HighCharts日期及数值格式化
  8. jsp网页实现自动刷新和自动跳转页面
  9. 2019幽门螺杆菌指南共识_《幽门螺杆菌感染基层诊疗指南(2019年)》发布! | 指南共识...
  10. (76)FPGA面试题-Verilog实现下降沿检测