繁体   English   中英

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

[英]AES/ECB/PKCS5Padding Unsafe Encryption Mode error

我收到来自谷歌的警告,将加密模式从“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 (顺便说一句,这是不安全的)更难使用。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM