java使用AES/CBC/PKCS5P加密大文件(2GB)
我有一个非常大的文件,大约2GB,我想通过将它切成块来加密它,如果我立即读取它,它太大了,我的JVM会抛出内存错误。我正在使用AES/CBC/PKCS5P添加。你能给我推荐一种方法吗?我读过密码流,但我不确定它们是否有效。提前谢谢! 我现在正在使用这个策略,但它不适用于更大的文件
try (FileInputStream input = new FileInputStream(in);
FileOutputStream output = new FileOutputStream(out)) {
byte[] encoded = cipher.doFinal(ByteStreams.toByteArray(input));
output.write(encoded);
}
# 1 楼答案
创建一个
CipherOutputStream
包装您的FileOuputStream
使用
Files.copy()
将文件复制到此CipherOutputStream
完成了。 有关详细信息,请阅读javadoc