gpt4 book ai didi

java - 在java中使用AES有效加密文件

转载 作者:塔克拉玛干 更新时间:2023-11-03 05:06:50 25 4
gpt4 key购买 nike

我正在开发一个应该加密一些小文件(小于 1MB)和大文件(大约 500MB)的应用程序。
如何加密文件并将加密版本有效地保存在磁盘上的某个位置(即快速)?
如果花时间我可以有加密进度吗?

最佳答案

假设您有一个 AES key 和一些输出流,下面介绍了如何向流中添加加密装饰器。

Cipher enc = Cipher.getInstance("AES/CBC/PKCS5Padding");
enc.init(Cipher.ENCRYPT_MODE, key);
AlgorithmParameters params = enc.getParameters();
IvParameterSpec iv = params.getParameterSpec(IvParameterSpec.class);
out.write(iv.getIV());
out = new CipherOutputStream(enc, out);

这会将 IV 添加到密文的开头;解密时,您需要将其解析出来以初始化密码。

从长远来看,更好的解决方案是使用实现加密消息语法的库,这是 S/MIME 的基础。这记录了有关可用于解密的算法和 key 的元数据。

如果您的供应商实现了 AEAD 模式,如 GCM 或 CCM,我也会推荐它。 (SunJCE 没有。)这些将验证文件是否已正确解密,并且没有损坏。

关于java - 在java中使用AES有效加密文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11920192/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com