问题背景
今天做前后端RSA加密的时候,突然发现前端加密后,使用AJAX请求后端,后端无法解密,但不是必现。
最后发现,加密后有 “+” 的,地址栏传参数会将 “+” 替换成空白字符导致。
问题原因
“+” 在 javaScript 里面代表空格。
解决办法
给加密后的参数用 encodeURIComponent() 进行编码,即可解决。
注意:不能使用 encodeURI 的进行编码,因为 encodeURI 对 “+” 不编码。
今天做前后端RSA加密的时候,突然发现前端加密后,使用AJAX请求后端,后端无法解密,但不是必现。
最后发现,加密后有 “+” 的,地址栏传参数会将 “+” 替换成空白字符导致。
“+” 在 javaScript 里面代表空格。
给加密后的参数用 encodeURIComponent() 进行编码,即可解决。
注意:不能使用 encodeURI 的进行编码,因为 encodeURI 对 “+” 不编码。