javax.crypto.IllegalBlockSizeException: Input length must be multiple of 16 when decrypting with padded cipher
时间: 2023-11-01 17:44:31 浏览: 99
这个异常的意思是在使用填充模式的加密算法进行解密时,输入的数据长度必须是16的倍数。
这个问题通常发生在使用AES算法或其他块加密算法时。解决这个问题的方法是检查解密时使用的密钥和填充模式是否与加密时使用的密钥和填充模式一致。
如果加密时使用的是PKCS#5填充模式,则解密时也必须使用同样的填充模式。如果输入的数据长度不是16的倍数,则必须在输入数据的末尾填充一些额外的字节,使其长度变为16的倍数。
另外,检查输入数据是否正确,因为如果输入数据被篡改,也有可能导致这个异常。
相关问题
报错javax.crypto.IllegalBlockSizeException: Input length must be multiple of 16 when decrypting with padded cipher 的解决方法
引用中提到,当使用AES解密时,报错javax.crypto.IllegalBlockSizeException: Input length must be multiple of 16 when decrypting with padded cipher的意思是解密字符串的数组长度必须是16的倍数。所以解决这个问题的方法就是确保传入解密方法的字符串长度是16的倍数。你可以在加密之前,将原始字符串进行填充,使其长度符合要求。在解密之前,也需要确保解密字符串的长度是16的倍数。具体的实现方法可以参考代码中的示例中的相关部分。<em>1</em><em>2</em><em>3</em>
#### 引用[.reference_title]
- *1* [javax.crypto.IllegalBlockSizeException: Input length must be multiple of 8 when decrypting with padd](https://blog.csdn.net/weixin_45915335/article/details/124152930)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v92^chatsearchT0_1"}} ] [.reference_item]
- *2* [javax.crypto.IllegalBlockSizeException: Input length must be multiple of 16 when decrypting with pad](https://blog.csdn.net/qq_30624649/article/details/114937740)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v92^chatsearchT0_1"}} ] [.reference_item]
- *3* [java AES 加密,报javax.crypto.IllegalBlockSizeException: Input length must be multiple of 16 when ...](https://blog.csdn.net/qq_36205206/article/details/119993785)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v92^chatsearchT0_1"}} ] [.reference_item]
[ .reference_list ]
javax.crypto.IllegalBlockSizeException: Input length must be multiple of 8 when decrypting with padded cipher
javax.crypto.IllegalBlockSizeException: Input length must be multiple of 8 when decrypting with padded cipher是AES加密解密的报错异常。这个异常的意思是在使用AES解密时,解密的字符串的长度必须是8的倍数。通常,这种异常是由于解密的数据长度不正确导致的。
可能的原因是在解密过程中,传入的密文长度不是8的倍数。解决这个问题的方法是确保在解密之前,对密文进行正确的填充操作,使其长度为8的倍数。常用的填充方式包括PKCS5Padding和PKCS7Padding。
阅读全文