我有一個3DES 密碼被這樣初始化對象的端部產生的垃圾算法結束成功地:Java的3DES加密在加密數據
String unencryptedText = "192 character length text in clear.... ";
byte[] bytesUnencryptedText = unencryptedText.getBytes("UTF8");
byte[] bytesEncryptedData = cipher.doFinal(bytesUnencryptedText);
當我們看一看在由doFinal生成的加密數據,我們注意到正在返回200個字節,而不是192如我們預期。這些額外的8個字節採用以下六位值:08.
前192個字節是正確的,我們已經能夠解密它們並獲得我們的原始數據。但額外的8個字節在我們的HSM上產生錯誤。
我們該如何防止密碼注入這些額外的字節?
數據長度是否總是8個字節的倍數? – 2015-02-10 18:27:09
始終指定完全限定的密碼字符串,因爲不同的提供者可能具有不同的默認值。我懷疑你是'Cipher.getInstance(「DESede/CBC/PKCS5Padding」);'。 – 2015-02-10 18:28:40
@ ArtjomB。不,作爲純文本並不總是。 – 2015-02-10 19:17:18