JavaScript压缩工具-加密解密

阿超 发表于 2009-09-11 12:51 | 来源: | 阅读 207 次

一个压缩JavaScript的小工具
同样的你也可以用它来进行代码的加密和解密

<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('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('code').value = eval(code);

}

</a></tmp></script>

<textarea id=code cols=80 rows=20>

</textarea><br />

<input type=button onclick=encode() value=编码/>

<input type=button onclick=run() value=执行/>

<input type=button onclick=decode() value=解码/>
喜欢Java豆技术站点的文章,那就通过 RSS Feed 功能订阅阅读吧!

我要评论

*

* 绝不会泄露



返回首页 | 关于我们 | 联系我们 | 广告合作 | 网站地图 | 友情链接 | 版权声明 | 模板设计