有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

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) 个答案

  1. # 1 楼答案

    创建一个CipherOutputStream包装您的FileOuputStream

    使用Files.copy()将文件复制到此CipherOutputStream

    完成了。 有关详细信息,请阅读javadoc