CipherInputStream 如何为您正在读取的不同字节转换 on/off 密码

CipherInputStream how to turn on/off the cipher for different bytes you are reading

我正在尝试读取一个文件,其中一些数据已加密,一些未加密。
每条消息的开头都有一个 未加密的 header,其中包含后面的加密消息的字节大小。

我要读取的 class 只是扩展了 FileInputStream,我覆盖了读取操作。
当我创建流 class 时,我将密码传递给构造函数。

在我的 read() 中,我需要能够为文件缓冲区中的不同位转换密码 on/off。
有什么方法可以转换 on/off执行读取时的密码?

谢谢

据我所知,你不能这样做。您必须拆分数据。

您应该创建一个包装器 FileInputStream class 来读取文件并对其进行解析,以便了解哪些部分需要解密,哪些不需要。然后 class 使用单独的解密流来解密需要解密的部分。不需要解密的部分只是(逐字节)返回给 class 的 reader 客户端。