Base64 空格,加号问题
app端会通过base64对密码进行加密,后端再解密,经常会解密失败,导致解密失败的原因是:
app端进行base64加密,内部含有+号,然后进行url加密,+号就变成空格,传给后端,后端进行base64解密,base64解密字符是不能包含空格的,所以报错。
W3C标准规定,当Content-Type为application/x-www-form-urlencoded时,URL中查询参数名和参数值中空格要用加号替换,所以几乎所有使用该规范的浏览器在表单提交后,URL查询参数中空格都会被编成加号+。
使用这种标准格式去传输数据,对base64加密再进行url加密后产生的空格会被浏览器直接自动转化为加号+,这样就避免了base64解密失败导致报错。