服务器端使用AES / ECB / PKCS5Padding加密模式,在客户端(移动)可以使用AES / CBC / PKCS5Padding解密它。或者我们需要为服务器端和客户端使用相同的模式吗? / p>
请指教。
答案 0 :(得分:2)
ECB和CBC模式本质上是不同的(wikipedia)。 ECB只是分别用密钥在每个明文块上应用分组密码,但是CBC将当前的明文块与最后一个密文块进行异或。
完全相同的模式和填充需要一次解密。如果您可以访问AES/CBC/NoPadding
,但不能访问AES/ECB/PKCS5Padding
或AES/ECB/NoPadding
,则可以通过分别解密每个块来解密AES/ECB/PKCS5Padding
- 加密数据。
ECB是一种模式,其中每个块都以完全相同的方式加密,而不像CBC模式那样与前一个块链接。因此,您可以使用CBC模式分别解密每个块,从而产生ECB模式。 IV必须设置为0x00字节,最后一个块必须用AES/CBC/PKCS5Padding
和零IV解密。