我在AES中使用AES和AES / CBC / PKCS5Padding以及Android中的以下加密和解密代码部分:
cipher.init(Cipher.ENCRYPT_MODE, keySpec, new IvParameterSpec(IV1));
cipher.init(Cipher.DECRYPT_MODE, keySpec, new IvParameterSpec(IV2));
其中IV1和IV2是随机生成的16字节初始化向量。我这样做是为了检查加密和解密方中使用不同IV的原始和解密文本是否会有所不同。这导致解密文本的字节与前16个字节之后的原始文本的字节相同。例如,如果原始文本是:
Enter your message here...
解密后的文字是:
*****************ge here...
其中*表示错误解密的字节,因为它应该是IV1和IV2不同。
我的问题是:如何使用带初始化向量的AES加密和解密长度超过16个字节的文本?