首页 > 解决方案 > 如何使用 Camel 解压缩加密的 zipfile

问题描述

我想使用 Apache Camel 解压缩和解密一个 zip 加密文件“Encrypted.zip”。

加密已作为压缩过程的一部分完成,使用简单的密码,因此这是一个一步过程,而不是 x.zip.pgp 或 x.pgp.zip。Zip 加密似乎是 AES。

ZipFileDataFormat 似乎没有密码选项,而 Crypto 似乎面向密钥文件,可能不适合多个文件。

我有一个包含对 7zip.exe 的调用的解决方案,但我正在寻找一种更有效的骆驼原生方法来解决问题。

标签: javaencryptionapache-camelunzip

解决方案


Google 搜索将我带到 Martin Matula 的博客:http ://blog.alutam.com/2009/10/31/reading-password-protected-zip-files-in-java/

他用InputStreamJava写了一个你似乎要求的东西:

public class ZipDecryptInputStream extends InputStream {

    public ZipDecryptInputStream(InputStream stream, String password) {
        this.delegate = stream;
        this.password = password;
    }

    ...
}

您还应该查看Apache Commons Compress,我也相信它支持读取加密的 zip 文件。

这是否与 Camel 纠缠不清可能与手头的问题无关。一旦你有了一个可以读取加密压缩文件的类,你就可以在 Camel 中创建一个自定义处理器或端点。


推荐阅读