0
我運行AES加密此Java代碼:AES加密輸出長度
byte[] iv = new byte[16];
SecretKey aesKey = new SecretKeySpec("hex key here", "AES");
Cipher cipher = Cipher.getInstance("AES/CBC/PKCS5Padding");
cipher.init(Cipher.ENCRYPT_MODE, aesKey, new IvParameterSpec(iv));
return cipher.doFinal("32 characters here ...".getBytes());
我總是得到一個48個字節輸出,但我具有被期待一個32個字節的輸入的遺留系統。如何控制輸出長度?
注:我必須使用AES CBC
所以你運行上面的代碼和doFinal的結果是96字節? –
爲什麼你期望64個字節的輸出? 「某些文本」將生成帶有PKCS#5填充的單個塊輸出,並且假設您使用的是AES-256,則它將是32個字節。 – vhallac
通過使用'getBytes()'而不指定字符集,您依賴於默認值,這通常是一個錯誤。此外,沒有編碼,我知道哪些「一些文本」將導致多達64個字節的輸出,更不用說96. –