一个简单的字符串js加密,php解密

因为gfw的存在,在query string中有敏感字的时候,会被墙,因为涉及到跨域,不能使用post,这里简单的加密了下。

其实base64就可以了,不过前台需要多加载一个base64函数,为了减少js大小,我直接使用了charCodeAt。
 

2012.10.18 17:32更新版

新版方法加密稍复杂,但解密比较方便,加密后的字符串更短。

js加密函数,实际上就是把包括英文字母在内的所有字符全部encodeURIComponent,然后移除掉%,因为%后面固定是两个字符,后台补上即可
 

function fisker_encode_v2(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();
}

fisker_encode_v2('天朝/China') = "E5A4A9E69C9D2F4368696E61"
 

php解密函数

function fisker_decode_v2($s){
    $a = str_split($s,2);
    $s = '%' . implode('%',$a);
    return urldecode($s);
}

fisker_decode_v2('E5A4A9E69C9D2F4368696E61') = '天朝/China';
 

 
原文地址:http://fiskercheung.com/post/js_encode_php_decode_string.html

300*300
 文章首页关于迷茫时代关于我写意人生
版权所有:迷茫时代 All rights reserved   
执行时间:0.00414 秒