【发布时间】:2020-11-24 04:44:24
【问题描述】:
我的目标是将整个文件解密为另一个文件。
如果 cypherBufStream(读取输入文件的 BufferedInputStream)太小,即大约 128 字节,则此输出循环出于某种原因不会写入 addmsgOut。当引入 38kb 及以上的较大文件时,它工作正常。我一直用头撞墙试图弄明白,希望得到一些帮助。
// Decrypt M and H using RSA encryption
OutputStream addmsgOut = new BufferedOutputStream(new FileOutputStream("message.add-msg"));
Cipher cipher = Cipher.getInstance("RSA/ECB/PKCS1Padding");
cipher.init(Cipher.DECRYPT_MODE, privateKey);
byte[] piece = new byte[128];
int e;
ByteArrayOutputStream out4 = new ByteArrayOutputStream();
while ((e = cypherBufStream.read(piece)) != -1) {
out4.write(piece, 0, e);
addmsgOut.write(cipher.doFinal(out4.toByteArray()));
out4.reset();
}
【问题讨论】:
-
您可能需要刷新或关闭输出流。
标签: java encryption bytearrayoutputstream bufferedoutputstream