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