Heim >Backend-Entwicklung >PHP-Tutorial >javascript - 服务端php的base64_encode加密后推到前端js解密后中文乱码
今天看了一段代码,实现的功能如下:
<code> decode_base64_str:function (s) { var e={},i,k,v=[],r='',w=String.fromCharCode; var n=[[65,91],[97,123],[48,58],[43,44],[47,48]]; for(z in n){for(i=n[z][0];i<n for var b="0,c,x,l=0,o=s.substring(i,i+72);" c="e[o.charAt(x)];b=(b<<6)+c;l+=6;" while>=8){r+=w((b>>>(l-=8))%256);} } } return r; }, </n></code>
修正一下,js与php之间通过GET传递,直接传递的是encode后的字符串
PS:关于是否有必要用base64_encode我也不确定,我说的风险不是传递内容的泄露,而是是否存在诸如注入之类的风险,目前我知道的注入应该是前端提交给后端的时候发生,其他的不是很熟。
今天看了一段代码,实现的功能如下:
<code> decode_base64_str:function (s) { var e={},i,k,v=[],r='',w=String.fromCharCode; var n=[[65,91],[97,123],[48,58],[43,44],[47,48]]; for(z in n){for(i=n[z][0];i<n for var b="0,c,x,l=0,o=s.substring(i,i+72);" c="e[o.charAt(x)];b=(b<<6)+c;l+=6;" while>=8){r+=w((b>>>(l-=8))%256);} } } return r; }, </n></code>
修正一下,js与php之间通过GET传递,直接传递的是encode后的字符串
PS:关于是否有必要用base64_encode我也不确定,我说的风险不是传递内容的泄露,而是是否存在诸如注入之类的风险,目前我知道的注入应该是前端提交给后端的时候发生,其他的不是很熟。
<code>php</code><code>$base = base64_encode(urlencode('中文'));//JUU0JUI4JUFEJUU2JTk2JTg3 console.log(decodeURIComponent(decode_base64_str('JUU0JUI4JUFEJUU2JTk2JTg3')));//中文 </code>