java - 如何使用 Camel 解压缩加密的 zipfile
问题描述
我想使用 Apache Camel 解压缩和解密一个 zip 加密文件“Encrypted.zip”。
加密已作为压缩过程的一部分完成,使用简单的密码,因此这是一个一步过程,而不是 x.zip.pgp 或 x.pgp.zip。Zip 加密似乎是 AES。
ZipFileDataFormat 似乎没有密码选项,而 Crypto 似乎面向密钥文件,可能不适合多个文件。
我有一个包含对 7zip.exe 的调用的解决方案,但我正在寻找一种更有效的骆驼原生方法来解决问题。
解决方案
Google 搜索将我带到 Martin Matula 的博客:http ://blog.alutam.com/2009/10/31/reading-password-protected-zip-files-in-java/
他用InputStream
Java写了一个你似乎要求的东西:
public class ZipDecryptInputStream extends InputStream {
public ZipDecryptInputStream(InputStream stream, String password) {
this.delegate = stream;
this.password = password;
}
...
}
您还应该查看Apache Commons Compress,我也相信它支持读取加密的 zip 文件。
这是否与 Camel 纠缠不清可能与手头的问题无关。一旦你有了一个可以读取加密压缩文件的类,你就可以在 Camel 中创建一个自定义处理器或端点。
推荐阅读
- java - is there a reason why my merge sort does not work for array length 10
- java - CriteriaBuilder - Join table to itself with complex ON
- arrays - Convert Json array into csv using Nifi
- python-3.x - How do I prevent line.replace from removing extra lines?
- testng - Is there any TestNG Listener method to execute after each Classes in Package
- symfony - 如何在 symfony 中添加外键(一对多)
- php - How could I change the port of target host?
- matlab - Failing to keep only red channel of RGB image in MATLAB
- javascript - Is there a way to close a vue component by clicking outside of it?
- php - 查找具有特定标准的最大值并检查同一组是否有更高/更低或任何值