last block incomplete in decryption

测试AES加密参数时报出的错,对比参数,发现接口收到的请求参数少了个+号。这是因为+号在URL中是一个特殊字符,所以传递时可能会丢失。

处理方案

  1. 使用param.replaceAll(" ", "+")统一替换空格为+号。
  2. 前端传递参数时,将客户端带“+”的参数中的“+”全部替换为“2B%”。
  3. 换请求方式为POST。
  4. 加密为16进制,不要有字母和+号这些。

以上4种方案,就感觉用第4种最合适,因为使用post方式接收String参数,测试下来还是会丢失+号,第4个方案则因为参数是对接系统传的,也没办法让改,只能先采用1方案暂时满足需求了。