Android Cipher AES加密内存泄漏

时间:2015-06-29 08:15:20

标签: android encryption memory-leaks out-of-memory

美好的一天。我在我的应用程序中使用类javax.crypto.Cipher使用CBC模式AES加密。 在使用CBC加密任何下一部分数据之前,我们应该调用cipher.init()方法。而且我注意到这会导致内存不断增长。在某些设备上它是"未知"其他设备上的内存类型是#34;本地堆"。问题是内存在加密大文件时会增长,并且在完成后不会释放。我已经检查过,如果我在加密之前没有调用cipher.init(),那么数据内存的任何部分都不会增长。加密后所有对象都会被破坏。没有指向未使用对象的链接,尤其是在使用密码的情况下。当加密应用程序使用的1,5Gb结果内存大小的视频大小约为500Mb时,如果加密一个1.5 Gb视频则变为1 Gb并且系统杀死app。 使用方法cipher.update()进行加密,方法ciper.doFinal()导致相同的情况

非常感谢任何帮助