javascript脚本eval(function(p,a,c,k,e,d)类型在线加解密程序

  • A+
所属分类:程序设计

有时候我们会遇到类似eval(function(p,a,c,k,e,d)的Javascript加密脚本,或者是我们需要对自己的Js脚本进行加密,下面这个Javascript小程序为大家解决了这个难题。
(注意在粘贴代码到下面文本框时请勿包含注释及空行,框内内容应类似于“eval(function(p,a,c,k,e,d)......{}))”格式)

eval(function(p,a,c,k,e,d)系列加密/解密javascript程序源码如下:

  1. <script>   
  2. a=62;   
  3. function encode() {   
  4. var code = document.getElementById('code').value;   
  5. code = code.replace(/[\r\n]+/g, '');   
  6. code = code.replace(/'/g, "\\'");   
  7. var tmp = code.match(/\b(\w+)\b/g);   
  8. tmp.sort();   
  9. var dict = [];   
  10. var i, t = '';   
  11. for(var i=0; i<tmp.length; i++) {   
  12. if(tmp[i] != t) dict.push(t = tmp[i]);   
  13. }   
  14. var len = dict.length;   
  15. var ch;   
  16. for(i=0; i<len; i++) {   
  17. ch = num(i);   
  18. code = code.replace(new RegExp('\\b'+dict[i]+'\\b','g'), ch);   
  19. if(ch == dict[i]) dict[i] = '';   
  20. }   
  21. 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}("  
  22. "'"+code+"',"+a+","+len+",'"+ dict.join('|')+"'.split('|'),0,{}))";   
  23. }   
  24.   
  25. function num(c) {   
  26. return(c<a?'':num(parseInt(c/a)))+((c=c%a)>35?String.fromCharCode(c+29):c.toString(36));   
  27. }   
  28.   
  29. function run() {   
  30. eval(document.getElementById('code').value);   
  31. }   
  32.   
  33. function decode() {   
  34. var code = document.getElementById('code').value;   
  35. code = code.replace(/^eval/, '');   
  36. document.getElementById('code').value = eval(code);   
  37. }   
  38. </script>   
  39.   
  40.   
  41. <textarea id=code cols=80 rows=20>   
  42.   
  43. </textarea><br>   
  44. <input type=button onclick=encode() value=编码>   
  45. <input type=button onclick=run() value=执行>   
  46. <input type=button onclick=decode() value=解码>   
avatar

发表评论

:?: :razz: :sad: :evil: :!: :smile: :oops: :grin: :eek: :shock: :???: :cool: :lol: :mad: :twisted: :roll: :wink: :idea: :arrow: :neutral: :cry: :mrgreen: