java zip加密压缩
时间: 2023-07-05 10:18:04 浏览: 70
Java中可以使用ZipOutputStream类实现对文件的压缩和加密。以下是一个简单的示例代码:
```
import java.io.FileInputStream;
import java.io.FileOutputStream;
import java.util.zip.ZipEntry;
import java.util.zip.ZipOutputStream;
import javax.crypto.Cipher;
import javax.crypto.CipherOutputStream;
import javax.crypto.spec.SecretKeySpec;
public class ZipEncrypt {
public static void main(String[] args) {
String inputFile = "input.txt";
String outputFile = "output.zip";
String password = "mypassword";
try {
// 创建ZipOutputStream对象
ZipOutputStream zipOut = new ZipOutputStream(new FileOutputStream(outputFile));
// 创建加密密钥
byte[] key = password.getBytes();
SecretKeySpec secretKey = new SecretKeySpec(key, "AES");
// 创建Cipher对象
Cipher cipher = Cipher.getInstance("AES");
cipher.init(Cipher.ENCRYPT_MODE, secretKey);
// 创建CipherOutputStream对象
CipherOutputStream cos = new CipherOutputStream(zipOut, cipher);
// 创建ZipEntry对象
ZipEntry zipEntry = new ZipEntry(inputFile);
// 添加ZipEntry对象到ZipOutputStream对象
zipOut.putNextEntry(zipEntry);
// 创建FileInputStream对象
FileInputStream fis = new FileInputStream(inputFile);
// 读取输入文件并写入ZipOutputStream对象
byte[] buffer = new byte[1024];
int len;
while ((len = fis.read(buffer)) > 0) {
cos.write(buffer, 0, len);
}
// 关闭流
fis.close();
cos.close();
zipOut.closeEntry();
zipOut.close();
System.out.println("文件压缩加密成功!");
} catch (Exception e) {
e.printStackTrace();
}
}
}
```
在上面的代码中,我们使用了AES加密算法对文件进行加密,密钥为mypassword。你可以根据需要修改加密算法和密钥。