Java AES解密具有错误头的zip文件

Java AES解密具有错误头的zip文件,java,header,zip,aes,Java,Header,Zip,Aes,我在解密zip流时遇到了一个奇怪的问题 在我解密给定的流之后,除了8个字节的头之外,我拥有完全相同的字节数组 它应该是50 4B 03 04(根据拉链规格),但我得到不同的 当我在c#中解密同一个流时,头是正确的。我使用RijndaelManaged、模式CBC、padding ZeroBytePadding和block size=128 在Java中,我使用AES/CBC/NOP添加块大小=128来解密 我认为原因是填充,但我不明白为什么其余字节是正确的。在CBC模式下,填充模式应该只影响消息

我在解密zip流时遇到了一个奇怪的问题

在我解密给定的流之后,除了8个字节的头之外,我拥有完全相同的字节数组

它应该是50 4B 03 04(根据拉链规格),但我得到不同的

当我在c#中解密同一个流时,头是正确的。我使用RijndaelManaged、模式CBC、padding ZeroBytePadding和block size=128

在Java中,我使用AES/CBC/NOP添加块大小=128来解密


我认为原因是填充,但我不明白为什么其余字节是正确的。

在CBC模式下,填充模式应该只影响消息的最后一个字节,而不是第一个字节(即从ZeroBytePadding到NoPadding,您可能会在末尾添加一些0字节)


如果第一个块不同(但其余块匹配),最可能的原因是加密和解密中的初始化向量不同。检查此项。

在解密过程中,您对初始化向量使用的是什么?如果你不知道静脉注射是什么,那就是你的问题。你说得太对了。原因是错误的,非常感谢。爱是溢出的。它使人们更快乐