温馨提示×

java unzip能否加密文件

小樊
116
2024-07-20 19:00:06
栏目: 编程语言

是的,Java中可以使用密码来加密和解密ZIP文件。可以使用ZipEntry.setCrc方法设置密码,以确保只有知道密码的用户才能解压缩文件。以下是一个简单的示例代码:

import java.io.FileInputStream;
import java.io.FileOutputStream;
import java.util.zip.ZipEntry;
import java.util.zip.ZipInputStream;

public class UnzipWithPassword {
    public static void main(String[] args) {
        String zipFilePath = "encrypted.zip";
        String destDir = "unzipped";
        String password = "mypassword";

        try {
            byte[] buffer = new byte[1024];

            ZipInputStream zis = new ZipInputStream(new FileInputStream(zipFilePath));
            ZipEntry zipEntry = zis.getNextEntry();

            while (zipEntry != null) {
                String fileName = zipEntry.getName();
                FileOutputStream fos = new FileOutputStream(destDir + "/" + fileName);
                int len;
                while ((len = zis.read(buffer)) > 0) {
                    fos.write(buffer, 0, len);
                }
                fos.close();
                zipEntry = zis.getNextEntry();
            }

            zis.closeEntry();
            zis.close();

            System.out.println("File unzipped successfully");
        } catch (Exception e) {
            System.out.println("Error unzipping file: " + e.getMessage());
        }
    }
}

在上面的示例中,我们通过ZipInputStream读取ZIP文件中的内容,然后逐个解压缩文件。要使用加密ZIP文件,您需要在解压缩文件之前设置密码。这可以通过将密码传递给ZipInputStream的构造函数来实现。

0