在 Android/java 应用程序中,
byte[] data = ":ʺ$jhk¨ë‹òºÃ"; // fetched from php server..
Cipher cipher = Cipher.getInstance("AES");
cipher.init(Cipher.DECRYPT_MODE, mKeyspec);
return new String(cipher.doFinal(data));
上面的代码总是抛出BadPaddingException: pad block corrupted
以下 16 字节加密数据
data = ":ʺ$jhk¨ë‹òºÃ"(数据为 16 个字符)
密钥长度为 16 个字节。
当数据已经是块大小时,为什么会抛出这个异常。?并且不需要填充。
注意:加密数据是从 php 服务器获取的。
编辑:
更改为
Cipher cipher = Cipher.getInstance("AES/ECB/NoPadding");
从后
Cipher cipher = Cipher.getInstance("AES");
解密方法成功,但给出了这个输出