解决IllegalBlockSizeException:last block incomplete in decryption异常

该问题网上普遍的说法是:

加密的时候使用DES/AES加密后需要使用Base64编码方式再进行一次加密,解密的时候需要先用Base64解密,再用DES/AES相应的方法解密。

而实际上,我这边已经进行了Base64编码依然会报该错误。

最后发现问题在于:

进行上述两次编码后,编码中有+,该符号经过网络传输后转义为了空格,原因是URL中默认的将“+”号转义了,将带空格的编码进行解密,就会报出标题异常。

解决方法如下:

方法一、修改客户端,将客户端带“+”的参数中的“+”全部替换为‍“2B%”,这样参数传到服务器端时就能得到“+”了。

方法二、修改服务器端,将空格替换为“+”,这种方式只适用于参数中有‍“+”没有空格的情况。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值