遇到个 java 加解密的难题

InputStream rawInStream = getInputStream(Filename);
cipherStream = new CipherInputStream(rawInStream, cipher);
in = new InflaterInputStream(baseStream, inf);

//使用这个in,直接读取加密压缩的文件,然后保存下来的就是明文数据

cipher中的算法是 aes 256 cbc

然后java这种加密和压缩一起叠加使用,内部原理是什么样的?
1. 每块数据分别 先压缩,再加密
2. 每块数据分别 先加密,再压缩
3. 还是 总的数据 先加密,再压缩
4. 还是 总的数据 先压缩,再加密?

InflaterInputStream是用来解压缩的,套了CipherInputStream,它是用来解密的。getInputStream(Filename);读取的是压缩加密的原始文件。
所以是先加密,再压缩。

不要自己写,采用现成的修改一下即可

测试证实,对于这种加密流运算出来的文件,要先解密,然后再解压