企业🤖AI智能体构建引擎,智能编排和调试,一键部署,支持私有化部署方案 广告
# Java – 创建受密码保护的 Zip 文件 > 原文: [https://howtodoinjava.com/java/io/how-to-create-password-protected-zip-files-in-java/](https://howtodoinjava.com/java/io/how-to-create-password-protected-zip-files-in-java/) 本教程介绍**使用非常有用的库 Zip4j 创建受密码保护的 zip 文件**。 Java 默认情况下不提供文件密码保护的任何支持。 尽管它对创建/提取 zip 文件具有很好的 API 支持。 还有一些其他有用的库,它们同样好,有时甚至比 zip4j 更好,但是它们也使用一些本机代码,这使得它们的使用平台在某种程度上依赖于。 **Zip4j 完全使用 Java 代码,没有任何本机代码**的支持,因此它更适合我。 Zip4j 提供以下特性: * 创建,添加,提取,更新,从 Zip 文件中删除文件 * 读/写受密码保护的 Zip 文件 * 支持 AES 128/256 加密 * 支持标准 Zip 加密 * 支持 Zip64 格式 * 支持存储(无压缩)和压缩压缩方法 * 从分卷 Zip 文件创建或提取文件(例如:z01,z02,…zip) * 支持 Unicode 文件名 * 进度监视器 ## 1)下载 Zip4j 库并将其包含到项目中 要下载 Zip4j 库,请转到其 [zip4j 下载页面](http://www.lingala.net/zip4j/download.php)并下载其最新版本(直到今天的`zip4j_1.3.2.jar`)。 将`zip4j.jar`文件添加到您项目的类路径中。 ## 2)创建受密码保护的 zip 文件的示例 现在,您可以使用以下代码创建受密码保护的存档。 您将需要使用 Java 6 来运行示例。 ```java import java.io.File; import java.util.ArrayList; import net.lingala.zip4j.core.ZipFile; import net.lingala.zip4j.exception.ZipException; import net.lingala.zip4j.model.ZipParameters; import net.lingala.zip4j.util.Zip4jConstants; public class CreatePasswordProtectedZipExample { public static void main(String[] args) { try { //This is name and path of zip file to be created ZipFile zipFile = new ZipFile("C:/temp/test.zip"); //Add files to be archived into zip file ArrayList<File> filesToAdd = new ArrayList<File>(); filesToAdd.add(new File("C:/temp/test1.txt")); filesToAdd.add(new File("C:/temp/test2.txt")); //Initiate Zip Parameters which define various properties ZipParameters parameters = new ZipParameters(); parameters.setCompressionMethod(Zip4jConstants.COMP_DEFLATE); // set compression method to deflate compression //DEFLATE_LEVEL_FASTEST - Lowest compression level but higher speed of compression //DEFLATE_LEVEL_FAST - Low compression level but higher speed of compression //DEFLATE_LEVEL_NORMAL - Optimal balance between compression level/speed //DEFLATE_LEVEL_MAXIMUM - High compression level with a compromise of speed //DEFLATE_LEVEL_ULTRA - Highest compression level but low speed parameters.setCompressionLevel(Zip4jConstants.DEFLATE_LEVEL_NORMAL); //Set the encryption flag to true parameters.setEncryptFiles(true); //Set the encryption method to AES Zip Encryption parameters.setEncryptionMethod(Zip4jConstants.ENC_METHOD_AES); //AES_STRENGTH_128 - For both encryption and decryption //AES_STRENGTH_192 - For decryption only //AES_STRENGTH_256 - For both encryption and decryption //Key strength 192 cannot be used for encryption. But if a zip file already has a //file encrypted with key strength of 192, then Zip4j can decrypt this file parameters.setAesKeyStrength(Zip4jConstants.AES_STRENGTH_256); //Set password parameters.setPassword("howtodoinjava"); //Now add files to the zip file zipFile.addFiles(filesToAdd, parameters); } catch (ZipException e) { e.printStackTrace(); } } } ``` 还有其他有用的用例,您也可以查看其源码发行版[**`zip4j_examples_eclipse_1.3.2.zip`**](http://www.lingala.net/zip4j/includes/downloadzip4j.php?option=examples&fmt=eclipse&jre=1.4)。 签出这个非常有用的库。 **祝您学习愉快!** 参考: [http://www.lingala.net/zip4j/](http://www.lingala.net/zip4j/)