文字列入力を暗号化するこのコードがあります。他のデバイスで同じ入力を使って暗号化した場合、8.1より低い値になります。しかし、私が8.1のデバイスを試してみると、まったく別の文字列が得られます。 例外がスローされません。私はKeyGenerator:AESでAndroid 8.1の暗号化アップデートを見つけました。どのように私は他のデバイスと同じ値を生成するために修正することができますOSの下位8.1?Android CipherでAndroid 8.1を暗号化
public static String cryptAESGungHo(String input)
{
byte[] gh_key = getKeyGungho("gh_key").getBytes();
byte[] gh_iv = getKeyGungho("gh_iv").getBytes();
IvParameterSpec ivSpecs = new IvParameterSpec(gh_iv);
byte[] crypted = null;
try{
SecretKeySpec skey = new SecretKeySpec(gh_key, "AES");
Cipher cipher = Cipher.getInstance("AES/CBC/PKCS5Padding");
cipher.init(Cipher.ENCRYPT_MODE, skey, ivSpecs);
try
{
crypted = cipher.doFinal(input.getBytes("UTF-16"));
}
catch(Exception e)
{}
}catch(Exception e){
}
String cr= new String(crypted);
return cr;
}
復号化に128ビットまたは256ビットを使用していますか? これを1.1.3にアップデートして、実装を変更して256ビットを使用して暗号化すると、問題なく解読できました。 OSではなくライブラリに問題があるようです。 – Dilip
私は128ビットを使用しています。私はまだそれを解読することができます。しかし、文字列の戻り値は他のOSと同じではありません –
これを256ビットに変更してもう一度やり直してください... – Dilip