Encryption 使用AES进行流处理的initVector

Encryption 使用AES进行流处理的initVector,encryption,io,stream,Encryption,Io,Stream,使用相同的initVector进行写入,使用CipherOutputStream对最终将写入磁盘的文件的各个部分进行加密是否安全?我将使用相同的键,但每次调用cos.write()时可能希望使用不同的iv。现在,如果要这样做,我需要确保每次随机生成一个新的iv。然后在解密过程中,如何将这些init向量传递给解密密码。iv是否可以嵌入到文件内容中并以确定的方式读回?如果有帮助,我可以固定iv的长度。初始化向量(iv)用于启动链接模式。在此之后,此IV初始化的链接模式将生效,直到您关闭密码流为止 如

使用相同的initVector进行写入,使用CipherOutputStream对最终将写入磁盘的文件的各个部分进行加密是否安全?我将使用相同的键,但每次调用cos.write()时可能希望使用不同的iv。现在,如果要这样做,我需要确保每次随机生成一个新的iv。然后在解密过程中,如何将这些init向量传递给解密密码。iv是否可以嵌入到文件内容中并以确定的方式读回?如果有帮助,我可以固定iv的长度。

初始化向量(iv)用于启动链接模式。在此之后,此IV初始化的链接模式将生效,直到您关闭密码流为止

如果需要切换IV mid stream,则需要结束正在进行的加密流,包括应用任何适用的填充。这就需要一个方案来识别一个“加密流”何时结束,以及一个新的开始

除非您需要某种类型的随机访问,或者数据与加密数据混合在一起,否则您通常只需使用一个唯一的IV对一个流中的所有数据进行加密


至于IV,您可以在加密数据之前将其预先挂起到您的文件中。这允许您在实例化密码流之前读取它。

初始化向量(IV)用于启动链接模式。在此之后,此IV初始化的链接模式将生效,直到您关闭密码流为止

如果需要切换IV mid stream,则需要结束正在进行的加密流,包括应用任何适用的填充。这就需要一个方案来识别一个“加密流”何时结束,以及一个新的开始

除非您需要某种类型的随机访问,或者数据与加密数据混合在一起,否则您通常只需使用一个唯一的IV对一个流中的所有数据进行加密


至于IV,您可以在加密数据之前将其预先挂起到您的文件中。这允许您在实例化密码流之前阅读它。

太好了,谢谢!有没有什么地方我可以读到你提到的链接。另外,我能够在加密期间将iv写入ByTestStream本身,所以我在解密期间读取了这么多字节。太好了,谢谢!有没有什么地方我可以读到你提到的链接。另外,我能够在加密期间将iv写入ByTestStream本身,所以我在解密期间回读了很多字节。