關於AES有很多問題,但我有以下問題。 我目前使用以下AES實現到數據如何從AES-256切換到AES-128?
byte [] PRFkey = {0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15};
byte [] plaintext = {0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15};
SecretKeySpec encryptionKey=new SecretKeySpec(PRFkey, "AES");
Cipher cipher=Cipher.getInstance("AES");
cipher.init(Cipher.ENCRYPT_MODE, encryptionKey);
byte[] encryptedData=cipher.doFinal(plaintext);
加密和事實證明,結果是32個字節(256位)。所以我使用AES-256。這個實現會讓我放慢速度。我怎樣才能切換到AES-128?我不需要任何填充或操作模式或密鑰散列。
預先感謝您。
注意:要遵循普通的Java命名實踐,'PRFkey'不應該以大寫字母開頭。這使它看起來像一個類型的名稱。 –
不要將密鑰長度與塊大小混淆 - AES-256採用256位密鑰,但其塊大小爲128位,就像AES-128一樣。 AES標準只定義了128位塊大小,儘管原始Rijndael密碼也定義了256位塊大小。 – ntoskrnl