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 标签:加密,ZIP,压缩文件,Java,import,net,zip4j,lingala From: https://www.cnblogs.com/ihuqi/p/18006017