0
我似乎對JCE有問題。我使用加密JCE密碼創建了一個CipherInputStream
,然後我使用另一個解密JCE密碼創建另一個CipherInputStream
。解密CipherInputStream會產生一個空的流
當我嘗試讀取第二個流然後我得到的是空數據。我沒有發現禁止上述行爲的文檔。有誰知道問題是什麼?
這是我正在運行的代碼,最後plainText是空的(同樣的問題仍然存在,無論我使用什麼SecurityProvider
)。
InputStream payload = new ByteArrayInputStream(payloadArray);
Cipher encryptCipher = Cipher.getInstance("AES", "SunJCE");
encryptCipher.init(Cipher.ENCRYPT_MODE, key, IV);
InputStream encryptStream = new CipherInputStream(payload, encryptCipher);
Cipher decryptCipher = Cipher.getInstance("AES", "SunJCE");
decryptCipher.init(Cipher.DECRYPT_MODE, key, IV);
InputStream decryptStream = new CipherInputStream(encryptStream, decryptCipher);
byte[] plainText = IOUtisl.toByteArray(decryptStream);
謝謝!