该问题网上普遍的说法是:
加密的时候使用DES/AES加密后需要使用Base64编码方式再进行一次加密,解密的时候需要先用Base64解密,再用DES/AES相应的方法解密。
而实际上,我这边已经进行了Base64编码依然会报该错误。
最后发现问题在于:
进行上述两次编码后,编码中有+,该符号经过网络传输后转义为了空格,原因是URL中默认的将“+”号转义了,将带空格的编码进行解密,就会报出标题异常。
解决方法如下:
方法一、修改客户端,将客户端带“+”的参数中的“+”全部替换为“2B%”,这样参数传到服务器端时就能得到“+”了。
方法二、修改服务器端,将空格替换为“+”,这种方式只适用于参数中有“+”没有空格的情况。