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

问题描述 投票:1回答:1

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

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

应该是50 4B 03 04(根据Zip规范),但我有所不同。

当我在c#中解密相同的流时,标头是正确的。我使用RijndaelManaged,模式CBC,填充ZeroBytePadding和块大小= 128

在Java中,我使用AES / CBC / NoPadding块大小= 128进行解密。

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

java header zip aes
1个回答
2
投票

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

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

© www.soinside.com 2019 - 2024. All rights reserved.