如何解决更改 Android 加密算法以更新 Google Play 上的应用程序的问题 - 从 AES/ECB/PKCS5Padding 到 AES/GCM/NoPadding
我想在很长一段时间内更新应用程序。
但是,Google Play 出于以下原因拒绝了该应用。
(不安全加密模式使用的补救措施 - support.google.com/faqs/answer/10046138)
被拒绝的代码如下。
public SecretKeySpec generateKey(int keySize) {
Date date = new Date();
Random rand = new Random(date.getTime());
byte[] aesKeyData = new byte[keySize];
rand.nextBytes(aesKeyData);
SecretKeySpec aesKeySpec = new SecretKeySpec(aesKeyData,"AES" );
return aesKeySpec;
}
public byte[] encrypt(byte[] data,SecretKey key)
throws NoSuchAlgorithmException,NoSuchPaddingException,InvalidKeyException,IllegalBlockSizeException,BadPaddingException {
Cipher cipher = Cipher.getInstance("AES/ECB/PKCS5Padding"); //here
cipher.init(Cipher.ENCRYPT_MODE,key);
byte[] outputBytes = cipher.doFinal(data);
return outputBytes;
}
public byte[] decrypt(byte[] data,BadPaddingException {
Cipher cipher = Cipher.getInstance("AES/ECB/PKCS5Padding"); //here
cipher.init(Cipher.DECRYPT_MODE,key);
byte[] outputBytes = cipher.doFinal(data);
return outputBytes;
}
这是问题部分。 (我猜...)
Cipher.getInstance("AES/ECB/PKCS5Padding")
如果我把这部分改成以下,我希望问题能得到解决。
Cipher.getInstance("AES/GCM/nopadding")
不过,
现有应用用户已使用“AES/ECB/PKCS5Padding”加密数据。
因此,在新发布的应用程序中使用“AES/ECB/PKCS5Padding”解密后,
用户数据需要用新算法加密。
在这种情况下,我的新应用应包含在 Google Play 中被拒绝的现有算法。
然后,我想,Google Play 也会拒绝。
我应该怎么做才能解决这个问题?
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。