暗号化されたデータベースを復号化するために使用している 48 文字のAES-192
暗号化キーがあります。
ただし、キーの長さが無効であることが通知されるため、getBytes() の結果をログに記録しました。
私が実行すると:
final String string = "346a23652a46392b4d73257c67317e352e3372482177652c";
final byte[] utf32Bytes = string.getBytes("UTF-32");
System.out.println(utf32Bytes.length);
私のMac(Java仮想マシン)でBlueJを使用する192
と、出力として得られます。
ただし、使用する場合:
Log.d(C.TAG, "Key Length: " + String.valueOf("346a23652a46392b4d73257c67317e352e3372482177652c".getBytes("UTF-32").length));
出力として取得196
します。
なぜこれが起こっているのか、Dalvik がどこから追加の 4 バイトを取得しているのかを知っている人はいますか?