Java压缩文件为ZIP并加密

news/发布时间2024/8/25 19:55:12

1:引入jar包

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

 

2:单文件压缩

 
import net.lingala.zip4j.ZipFile;
import net.lingala.zip4j.exception.ZipException;
import net.lingala.zip4j.model.ZipParameters;
import net.lingala.zip4j.model.enums.EncryptionMethod;import java.io.File;public class FileEncryptionExample {public static void main(String[] args) {// 1. 定义源文件路径、目标ZIP文件路径和密码String sourceFilePath = "path/to/source/file"; // 要加密的源文件路径String destinationFilePath = "path/to/encrypted/file.zip"; // 加密后的ZIP文件保存路径String password = "myPassword"; // 用于加密ZIP文件的密码try {// 2. 创建一个 ZipFile 对象并设置密码ZipFile zipFile = new ZipFile(destinationFilePath);zipFile.setPassword(password);// 3. 创建一个 ZipParameters 对象并设置加密方法ZipParameters params = new ZipParameters();params.setEncryptionMethod(EncryptionMethod.AES);// 4. 将源文件添加到 ZIP 文件中,同时应用加密参数zipFile.addFile(new File(sourceFilePath), params);System.out.println("File encrypted successfully");} catch (ZipException e) {e.printStackTrace();}}
}

3.多个文件压缩到一个压缩包里面并加密

import net.lingala.zip4j.ZipFile;
import net.lingala.zip4j.exception.ZipException;
import net.lingala.zip4j.model.ZipParameters;
import net.lingala.zip4j.model.enums.EncryptionMethod;import java.io.File;
import java.util.ArrayList;public class MultipleFilesEncryptionExample {public static void main(String[] args) {// 1. 定义源文件列表、目标ZIP文件路径和密码ArrayList<String> sourceFilePaths = new ArrayList<>();sourceFilePaths.add("path/to/source/file1"); // 第一个要加密的源文件路径sourceFilePaths.add("path/to/source/file2"); // 第二个要加密的源文件路径String destinationFilePath = "path/to/encrypted/multiple_files.zip"; // 加密后的ZIP文件保存路径String password = "myPassword"; // 用于加密ZIP文件的密码try {// 2. 创建一个 ZipFile 对象并设置密码ZipFile zipFile = new ZipFile(destinationFilePath);zipFile.setPassword(password);// 3. 创建一个 ZipParameters 对象并设置加密方法ZipParameters params = new ZipParameters();params.setEncryptionMethod(EncryptionMethod.AES);// 4. 循环遍历源文件列表,将每个文件添加到 ZIP 文件中,同时应用加密参数for (String sourceFilePath : sourceFilePaths) {File sourceFile = new File(sourceFilePath);zipFile.addFile(sourceFile, params);}System.out.println("Files encrypted and compressed successfully");} catch (ZipException e) {e.printStackTrace();}}
}

 

 4.感谢
原文作者:小小小小真
原文链接:https://blog.csdn.net/a1150499208/article/details/132764591?spm=1001.2014.3001.5502

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.liansuoyi.cn/news/53371534.html

如若内容造成侵权/违法违规/事实不符,请联系连锁易网进行投诉反馈email:xxxxxxxx@qq.com,一经查实,立即删除!

相关文章

pytorch自带数据集MNIST

一、简介 pytorch自带的数据集由两个上层api提供,分别是torchvision和torchtext,其中: 1、torchvision提供了对图片数据处理相关的api和数据数据位置:torchvision.datasets,例如:torchvision.datasets.MNIST(手写数字图片数据) 2、torchtext提供了对文本数据处理相关的…

大促削峰实战:评价QPS降低85%的背后逻辑

一、背景 京东APP商品详情页展示的评价数据通过单独请求评价接口获取,与商详模块流量近乎1:1,需要共同应对秒杀等海量流量的冲击,存在突发流量风险。经过对用户操作行为和评价埋点信息分析,评价调用与商详流量解耦可行,预期收益显著。为此,评价与商详模块研发人员组成虚拟…

J-link J-scop 进行可视化数据波形调试

Step1. 软件安装 链接:https://pan.baidu.com/s/1TQba9HFmnz30rBAHptrn3w?pwd=kron 提取码:kron 可能老版本的jlink在安装的时候没有这个软件 有需要的可以自己下载一个正常安装即可,安装完成后打开软件 Step2.软件使用 1.选择芯片2.选择axf文件完成后应该是这个样子的点击…

kettle从入门到精通 第三十九课 kettle 增量同步(日级)

1、上一课我们学习了在数据量大的情况下的分页全量同步示例,本次我们一起学习下kettle 增量全量同步。有些业务场景不需要实时数据,比如统计t-1日的销售业绩情况等。2、kettle增量全量同步示例依然基于test数据库,从t1表增量同步数据到t2表,假定每天0点跑批将t1表中的t-1日…

使用自监督学习重构动态驾驶场景

使用自监督学习重构动态驾驶场景 Reconstructing Dynamic Driving Scenarios Using Self-Supervised Learning从单调的高速公路到日常的邻里旅行,开车往往平淡无奇。因此,在现实世界中收集的许多用于自动驾驶汽车(AV)开发的训练数据都严重偏向于简单的场景。 这对部署健壮的…

MyBatis缓存教程

MyBatis 提供了一级缓存和二级缓存的支持,用于提高数据库查询的性能,减少不必要的数据库访问。 一级缓存(SqlSession 级别的缓存) 一级缓存是 MyBatis 中最细粒度的缓存,也称为本地缓存。它存在于每个 SqlSession 的生命周期中,当 SqlSession 被关闭或清空时,该缓存就会…

基础算法(十二)双指针---以题为例

双指针给定一个长度为 n 的整数序列,请找出最长的不包含重复的数的连续区间,输出它的长度。 输入格式 第一行包含整数 n。 第二行包含 n 个整数(均在 0∼105范围内),表示整数序列。 输出格式 共一行,包含一个整数,表示最长的不包含重复的数的连续区间的长度。 数据范围 …

R语言用决策树的酒店收入和产量预测可视化研究

全文链接:https://tecdat.cn/?p=35130 原文出处:拓端数据部落公众号 现代社会经济的发展,促进了酒店业的投资热潮, 投资者投资一个酒店,必须在投资前对若干经营数据进行科学预测与分析,对酒店可能形成的收入成本水平进行估算,从而对投资的风险进行有效预测。 酒店管理者…

3、【实操】csv表格数据导入到mysql

# 数据库需提前先设置好字符集,确保文本内容写入后不会有乱码 代码入下:

Splunk Enterprise 9.2.0 (macOS, Linux, Windows) - 机器数据管理和分析

Splunk Enterprise 9.2.0 (macOS, Linux, Windows) - 机器数据管理和分析Splunk Enterprise 9.2.0 (macOS, Linux, Windows) - 机器数据管理和分析 SIEM、全面的日志管理和分析平台 请访问原文链接:https://sysin.org/blog/splunk-9/,查看最新版。原创作品,转载请保留出处。…

Python 数据分析(PYDA)第三版(七)

原文:wesmckinney.com/book/ 译者:飞龙 协议:CC BY-NC-SA 4.0附录 附录 A:高级 NumPy原文:wesmckinney.com/book/advanced-numpy 译者:飞龙 协议:CC BY-NC-SA 4.0此开放访问网络版本的《Python 数据分析第三版》现已作为印刷版和数字版的伴侣提供。如果您发现任何勘误,…

关于最新的devtools的network【网络】折叠 还原

设置里面本文来自博客园,作者:__username,转载请注明原文链接:https://www.cnblogs.com/code3/p/18004782

[数据结构] 链表

写在前面 菜鸡博主开始复习了,先从数据结构开始吧(其实是每天复习高数太累了) 1. 单链表 单链表是线性表的链式存储,是指通过一组任意的存储单元来存储线性表中的数据元素。对每个链表节点,除了存放元素自身的信息之外,还需要存放一个指向其后继的指针(如下图所示)单链…

FastGateway 一个可以用于代替Nginx的网关

在我本人研究Yarp的时候经常用于公司项目的业务网关代理,这时候就个大佬问我是否可以实现动态加载HTTPS证书?那时候我说不太可能实现,然而在某一天我看到 微软使用Yarp代替了Nginx吞吐量提升了百分之八十!这个时候我就萌生了自己使用yarp造一个Gateway的项目,应为我本身也…

做好设计:架构模式

架构模式是系统组件及组件交互的模式,决定了处理数据和领域对象的全局控制结构。在 “软件设计要素初探” 一文,尝试从软件设计的整体角度,综合讨论了软件设计的各种要素。本文探讨确定系统整体结构的架构模式。概述 架构模式是系统组件及组件交互的模式,决定了处理数据和领…

2024-02-03:用go语言,你有 k 个背包。给你一个下标从 0 开始的整数数组 weights, 其中 weights[i] 是第 i 个珠子的重量。同时给你整数 k, 请你按照如下规则将所有

2024-02-03:用go语言,你有 k 个背包。给你一个下标从 0 开始的整数数组 weights, 其中 weights[i] 是第 i 个珠子的重量。同时给你整数 k, 请你按照如下规则将所有的珠子放进 k 个背包。 没有背包是空的。 如果第 i 个珠子和第 j 个珠子在同一个背包里, 那么下标在 i 到 j…

AIStudio框架汇总及介绍

长风破浪会有时,直挂云帆济沧海 AIStudio.框架汇总 开源版名称地址描述Gitee GitHub 博客 Wpf画板框架:示意图,流程图,SFC顺序控制图,逻辑图,思维导图,画板,Block基础功能,可编程画板(预览)等Gitee GitHub 博客 权限框架Wpf客户端:大屏,系统管理,流程中心,通用查…

[SQL]事务

本篇文章阐述了什么是事务,以及四种事务隔离级别的特性和配置方法。 如果文中阐述不全或不对的,多多交流。【版权声明】未经博主同意,谢绝转载!(请尊重原创,博主保留追究权) https://www.cnblogs.com/cnb-yuchen/p/18004299 出自【进步*于辰的博客】参考笔记一,P19.7/8…

用友NCC【取消记账】按钮如何显示出来?

NCC 总账系统,凭证记账节点【取消记账】按钮显示操作方法: 1)打开凭证记账节点:路径:首页>财务会计>总账>凭证管理>凭证记账 2)把鼠标定位到“凭证记账”这四个字中间 3)鼠标左键快速点击三下,右上角就会出来【取消记账】按钮结果:欢迎好评!

记录一次实机安装linux的经历

众所周知,不会玩linux的程序员不是一个合格的程序员。 为了能更好地装逼学习linux,我打算自己动手在实体电脑上安装一下linux。并将这次经历记录下来,以便日后查看。 安装前的准备 为了方便蹭公司的电 我这次选择笔记本电脑来安装linux,来看看这次用来装系统的电脑配置除了…
推荐文章