gpt4 book ai didi

java - 将 IV 附加到加密文件以供稍后解密

转载 作者:行者123 更新时间:2023-11-30 06:52:57 27 4
gpt4 key购买 nike

我试图在加密后但写入之前将一个 16 字节安全生成的 IV 附加到每个文件上。这样我以后就可以通过从文件中拉出 IV 来解密它。这是我到目前为止的代码:

public static void encrypt(byte[] file, String password, String fileName, String dir)
throws Exception {
SecureRandom r = new SecureRandom();
//128 bit IV generated for each file
byte[] iv = new byte[IV_LENGTH];
r.nextBytes(iv);

SecretKeySpec keySpec = new SecretKeySpec(password.getBytes(), "AES");

IvParameterSpec ivspec = new IvParameterSpec(iv);
Cipher cipher = Cipher.getInstance("AES/CBC/NoPadding");
cipher.init(Cipher.ENCRYPT_MODE, keySpec, ivspec);

FileOutputStream fos = new FileOutputStream(dir + fileName);
CipherOutputStream cos = new CipherOutputStream(fos, cipher);

// Have to append IV --------


cos.write(file);

fos.flush();
cos.flush();
cos.close();
fos.close();

关于如何做到这一点有什么建议吗?

最佳答案

FileOutputStream fos = new FileOutputStream(dir + fileName);
fos.write(iv);

CipherOutputStream cos = new CipherOutputStream(fos, cipher);

应该可以解决问题。在设置密码之前就可以将 IV 写入文件。

关于java - 将 IV 附加到加密文件以供稍后解密,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42402896/

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