AES/ECB/PKCS5Padding不安全加密模式错误



我收到了来自google的警告,要更改加密模式从" AES/ECB/pkcs5padding ";",AES/GCM/NoPadding"。更改后,我需要与"AES/ECB/PKCS5Padding"加密的旧数据兼容。你能帮我解决这个问题吗?现在我使用的是简单的try catch。

Cipher cipher = Cipher.getInstance("AES/ECB/PKCS5Padding");
cipher.init(Cipher.DECRYPT_MODE, secretKey);
byte[] decrypted = cipher.doFinal(encryptedString);

最简单的解决方案是迁移数据。我的意思是使用旧算法解密数据(你在你的代码片段中所做的),然后再次加密它,但使用新的算法(在你的情况下是AES/ECB/PKCS5Padding)。

为了跟踪用户的数据是否已经迁移,您可以使用保存在SharedPreferences中的简单标志来标记成功操作后的数据迁移。

如果你想阅读关于Android上GCM加密的全面指南,请查看这篇文章。就像@Topaco在评论中提到的那样,GCM更难使用,因为使用了一些额外的东西,而不仅仅是简单的AES/ECB/PKCS5Padding(顺便说一下,这是不安全的)。

最新更新