不知道你是否已經解決了你的問題,但我認爲你正在尋找的填充類型是ZeroBytePadding。此代碼對我的作品在2.3.3模擬器:
String stringKey = "60380131061660211660380426804995";
String message = "This is a secret message";
try {
SecretKeySpec sks = new SecretKeySpec(stringKey.getBytes(),"AES");
Cipher c = Cipher.getInstance("AES/ECB/ZeroBytePadding"); // Change to CBC and use appropriate IV
c.init(Cipher.ENCRYPT_MODE, sks);
c.update(message.getBytes());
byte[] ciphertext = c.doFinal();
Log.i("CE", new String(ciphertext));
} catch (NoSuchAlgorithmException e) {
Log.e("CE",e.getMessage());
} catch (NoSuchPaddingException e) {
Log.e("CE",e.getMessage());
} catch (InvalidKeyException e) {
Log.e("CE",e.getMessage());
} catch (IllegalBlockSizeException e) {
Log.e("CE",e.getMessage());
} catch (BadPaddingException e) {
Log.e("CE",e.getMessage());
}
我理解的說法,不知道我理解你的問題,你問如何構建與正確的填充或緩衝? – Idistic
我只想知道是否有填充方法的名稱或我必須手動執行此操作?如果有名字,是否支持? – Hank
正如Timothyjc的回答中所述,它有填充機制可用,以便爲您填充填充「AES/ECB/PKCS7Padding」處理最多255個字節的塊大小 – Idistic