eval(function(p,a,c,k,e,r)解密程序
以eval(function(p,a,c,k,e,r){e=function(c)开头的js文件是经过加密的
使用下面方法可以对js文件进行加密、解密
步骤:1.新建html页面,内容如下列代码
2.把加密的代码粘进【原脚本】文本域,点击【解密】按钮;
3.把需要加密的原代码粘进【原脚本】文本域,点击【加密】按钮;
HTML代码如下:
<script> a=62; function encode() { var code = document.getElementById('code').value; code = code.replace(/[\r\n]+/g, ''); code = code.replace(/'/g, "\\'"); var tmp = code.match(/\b(\w+)\b/g); tmp.sort(); var dict = []; var i, t = ''; for(var i=0; i<tmp.length; i++) { if(tmp[i] != t) dict.push(t = tmp[i]); } var len = dict.length; var ch; for(i=0; i<len; i++) { ch = num(i); code = code.replace(new RegExp('\\b'+dict[i]+'\\b','g'), ch); if(ch == dict[i]) dict[i] = ''; } document.getElementById('new_code').value = "eval(function(p,a,c,k,e,d){e=function(c){return(c<a?'':e(parseInt(c/a)))+((c=c%a)>35?String.fromCharCode(c+29):c.toString(36))};if(!''.replace(/^/,String)){while(c--)d[e(c)]=k[c]||e(c);k=[function(e){return d[e]}];e=function(){return'\\\\w+'};c=1};while(c--)if(k[c])p=p.replace(new RegExp('\\\\b'+e(c)+'\\\\b','g'),k[c]);return p}(" + "'"+code+"',"+a+","+len+",'"+ dict.join('|')+"'.split('|'),0,{}))"; } function num(c) { return(c<a?'':num(parseInt(c/a)))+((c=c%a)>35?String.fromCharCode(c+29):c.toString(36)); } function run() { eval(document.getElementById('code').value); } function decode() { var code = document.getElementById('code').value; code = code.replace(/^eval/, ''); document.getElementById('new_code').value = eval(code); } </script> <div>JS文件加密解密</div> <div>原脚本</div> <textarea id="code" cols=80 rows=10> </textarea> <div>加密/解密后脚本</div> <textarea id="new_code" cols=80 rows=10> </textarea> <div> <input type=button onclick=encode() value=编码> <input type=button onclick=run() value=执行> <input type=button onclick=decode() value=解码> </div>
界面如图