我有一個48字符的AES-192
加密密鑰,我正在使用它來解密加密的數據庫。String.getBytes(「UTF-32」)在JVM和Dalvik VM上返回不同的結果
但是,它告訴我密鑰長度是無效的,所以我記錄了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個字節?
爲什麼不拋售字節看? –
@JonSkeet好主意。我會稍微編輯一下。 –
它可能是BOM,00 00 FE FF – irreputable