UNPKG

gulp-js-encrypt

Version:
70 lines (61 loc) 1.94 kB
var Packer=require("./Packer"), beautify=require("./beautify/_beautify"), unpacker=require("./unpacker"); // var a=62; // function encode(code) { // if(!code){ // return code; // } // code = code.replace(/[\r\n]+/g, ''); // code = code.replace(/'/g, "\\'"); // var tmp = code.match(/\b(\w+)\b/g), // dict = [], // i, // t = '', // res=""; // tmp.sort(); // for(var i=0; i<tmp.length; i++) { // if(tmp[i] != t){ // dict.push(t = tmp[i]); // } // } // var len = dict.length, // 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] = ''; // } // } // res = "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,{}))"; // return res; // } // function num(c) { // return(c<a?'':num(parseInt(c/a)))+((c=c%a)>35?String.fromCharCode(c+29):c.toString(36)); // } // function decode(code) {//旧 // if(!code){ // return code; // } // code = code.replace(/^eval/, ''); // return eval(code); // } function encode(code) { if(!code){ return code; } var packer=new Packer; return packer.pack(code, 1, 0); } function decode(code) { if(!code){ return code; } return beautify(unpacker(code)); } module.exports={ decode:decode, encode:encode // beautify:beautify }