使用场景:在搜索-或者浏览器传值的时候,很多时候会遇到很多特殊字符,get的时候很多时候要丢失,那么在传值到浏览器时候,js加密,到后端php再解密,中途就不会丢失!
尝试用过crypto-js,但是这种加密会带上/+等特殊符号,浏览器一样会屏蔽!
//js字符加密
function forJs(s){
var es = [],c='',ec='';
s = s.split('');//10.19补 忘记ie不能下标访问字符串
for(var i=0,length=s.length;i<length;i++){
c = s[i];
ec = encodeURIComponent(c);
if(ec==c){
ec = c.charCodeAt().toString(16);
ec = ('00' + ec).slice(-2);
}
es.push(ec);
}
return es.join('').replace(/%/g,'').toUpperCase();
}
// php解密函数
public function forPhp($s){
$a = str_split($s,2);
$s = '%' . implode('%',$a);
return urldecode($s);
}