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);读取的是压缩加密的原始文件。
所以是先加密,再压缩。
不要自己写,采用现成的修改一下即可
测试证实,对于这种加密流运算出来的文件,要先解密,然后再解压