js php base64 还原,javascript - 服务端php的base64_encode加密后推到前端js解密后中文乱码...

今天看了一段代码,实现的功能如下:

服务端php调用底层命令,将返回结果用base64_encode加密

前端js通过GET方法调用上述php获取经过加密的文本用下面的解密函数解密,英文没问题,但是中文乱码。

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=8){r+=w((b>>>(l-=8))%256);}

}

}

return r;

},

问题:

如果不经过这个加密解密过程中文显示没问题,但是是不是会有什么风险?

要完美实现解密中文,上述解密函数那个地方不对?

修正一下,js与php之间通过GET传递,直接传递的是encode后的字符串

PS:关于是否有必要用base64_encode我也不确定,我说的风险不是传递内容的泄露,而是是否存在诸如注入之类的风险,目前我知道的注入应该是前端提交给后端的时候发生,其他的不是很熟。

回复内容:

今天看了一段代码,实现的功能如下:

服务端php调用底层命令,将返回结果用base64_encode加密

前端js通过GET方法调用上述php获取经过加密的文本用下面的解密函数解密,英文没问题,但是中文乱码。

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=8){r+=w((b>>>(l-=8))%256);}

}

}

return r;

},

问题:

如果不经过这个加密解密过程中文显示没问题,但是是不是会有什么风险?

要完美实现解密中文,上述解密函数那个地方不对?

修正一下,js与php之间通过GET传递,直接传递的是encode后的字符串

PS:关于是否有必要用base64_encode我也不确定,我说的风险不是传递内容的泄露,而是是否存在诸如注入之类的风险,目前我知道的注入应该是前端提交给后端的时候发生,其他的不是很熟。

php$base = base64_encode(urlencode('中文'));//JUU0JUI4JUFEJUU2JTk2JTg3

console.log(decodeURIComponent(decode_base64_str('JUU0JUI4JUFEJUU2JTk2JTg3')));//中文

本文原创发布php中文网,转载请注明出处,感谢您的尊重!

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值