我正在使用16字節塊大小的AES密碼。Java密碼 - AES填充問題
如果我嘗試加密一個16字節的字符串,我沒有任何問題,但其他長度不是16的倍數是拋出異常。
我知道用3-DES可以指定一個填充類型作爲算法的一部分,並且它不需要額外的工作(例如DES/CBC/PKCS5Padding),但是有沒有辦法用AES指定呢?
或者我是否需要手動將pytes填充到16的倍數,然後在解密時將它們去除?這是一個縮寫代碼示例。
encrypt = Cipher.getInstance("AES", provider);
encrypt.init(Cipher.ENCRYPT_MODE, key) ;
byte[] encrypted = encrypt.doFinal(plainTxt.getBytes()) ;
任何和所有回覆讚賞!
由於提前, 夏蘭
迂迴評論:根據定義,AES只有16字節塊大小。 Rijndael(原始名稱和規範)的塊大小爲16,24和32個字節,但在AES中僅允許使用16個字節的塊。 Rijndael也支持128,160,192,224,256密鑰,但AES中僅支持128,192和256。 – 2011-02-06 09:56:57