我们可以使用一种模式进行加密,使用另一种模式进行AES解密

时间:2015-02-26 10:41:57

标签: encryption java-me aes cbc-mode ecb

服务器端使用AES / ECB / PKCS5Padding加密模式,在客户端(移动)可以使用AES / CBC / PKCS5Padding解密它。或者我们需要为服务器端和客户端使用相同的模式吗? / p>

请指教。

1 个答案:

答案 0 :(得分:2)

ECB和CBC模式本质上是不同的(wikipedia)。 ECB只是分别用密钥在每个明文块上应用分组密码,但是CBC将当前的明文块与最后一个密文块进行异或。

完全相同的模式和填充需要一次解密。如果您可以访问AES/CBC/NoPadding,但不能访问AES/ECB/PKCS5PaddingAES/ECB/NoPadding,则可以通过分别解密每个块来解密AES/ECB/PKCS5Padding - 加密数据。

ECB是一种模式,其中每个块都以完全相同的方式加密,而不像CBC模式那样与前一个块链接。因此,您可以使用CBC模式分别解密每个块,从而产生ECB模式。 IV必须设置为0x00字节,最后一个块必须用AES/CBC/PKCS5Padding和零IV解密。