一个简单的字符串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