私は、この暗号化機能を持っている上で異なる動作を:AES/CFB/PKCS5Paddingは異なるAndroidのバージョン
String Encrypt(String text, byte[] keyBytes) throws Exception {
Cipher cipher = Cipher.getInstance("AES/CFB/PKCS5Padding");
SecretKeySpec keySpec = new SecretKeySpec(keyBytes, "AES");
IvParameterSpec ivSpec = new IvParameterSpec("AAAAAAAAAAAAAAAA".getBytes("UTF-8"));
cipher.init(Cipher.ENCRYPT_MODE, keySpec, ivSpec);
byte[] results = cipher.doFinal(text.getBytes("UTF-8"));
return Base64.encodeToString(results, Base64.URL_SAFE);
}
ほとんどのAndroidデバイスでは、それが正常に動作します。しかし、いくつかの古いデバイス(注3、LG G2、Android 4.4)では、暗号化されていません。
ここでは、2つのデバイスの比較を示します。注3暗号化に問題があり、Nexus 6は問題ありません。
Note 3
---------
String to encrypt: Hello, world
Encryption key: [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16]
Encryption result bytes: [108, -63, -66, 117, 62, -78, -108, 22, 12, -128, 119, 22]
Encryption result Base64: bMG-dT6ylBYMgHcW
Nexus 6
---------
String to encrypt: Hello, world
Encryption key: [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16]
Encryption result bytes: [108, -63, -66, 117, 62, -78, -108, 22, 12, -128, 119, 22, 89, -73, -23, 114]
Encryption result Base64: bMG-dT6ylBYMgHcWWbfpcg==
これは既知のバグですか?問題を解決するために私ができることは何ですか?