问题描述
我想在很长一段时间内更新应用程序。
但是,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 (将#修改为@)