Javascript 核心方法加密,JS方法完美在线加密工具介绍及演示
Mar 30, 2020 8:51:23 PM
今天把我们方法级别加密上线了,欢迎会员进行体验,优缺点都介绍下。
Javascript 核心方法加密介绍:
JS方法加密工具地址:https://www.jsjiami.com/encodefunction.html
优点:
1.完全打乱顺序,并且很难跟踪执行顺序。
2.加密核心字符串,改变字符串显示内容,使他人无法定位到核心字符串及文字等内容。
3.加密后再配合“最牛JS加密”使用,简直是完美。
4. 还有很多自己去发现。
缺点:
1.不支持ES6语法,还有复杂的语法不支持。
2.支持一个内置单个方法的闭包或者单个JS方法加密,多个方法请单独加密。
Javascript 核心方法加密代码对比
随便拿一个无意义的代码,然后来演示一下。
JavaScript加密前源码:
function sendPost(options){
var pramas = {
url: '',
type: 'post',
data: {},
success: function (data) {},
error: function (err) {},
};
pramas.data.token = '演示代码'
options = Object.assign(pramas, options);
if(options.url){
var xhr = XMLHttpRequest ? new XMLHttpRequest() : new ActiveXObject("Microsoft.XMLHTTP")
var url = options.url,
type = options.type.toUpperCase(),
data = pramas,
dataArr = [];
for(let key in data){
let value = key + '='+ data[key];
dataArr.push(value)
}
if(type === "GET"){
url = url + "?" + dataArr.join('&');
xhr.open(type, url, true);
xhr.send()
}
if(type === "POST"){
xhr.open(type, url, true);
xhr.setRequestHeader('Content-type', 'application/x-www-form-urlencoded')
xhr.send(dataArr.join('&'))
}
xhr.onreadystatechange = function(){
if (xhr.readyState == 4 && (xhr.status == 200 || xhr.status == 304)) {
options.success(xhr.responseText)
}else {
options.error(xhr.responseText)
}
}
}
}
JavaScript加密后密文:
加密后函数名 sendPost
是不变的,参数名字也没变,然后里面变了。而且一些字符串都搜索不到了。token
就找不到了,并且可以找找代码的顺序。
当然不是最佳实现,最佳实现是,用这个加密加密完毕后,再用最 牛加JS加密工具 加密一下,那就完美了。
function sendPost(options) {
var DgG = function (s) {
this.s = s;
this.length = s.length;
for (var i = 0; i < s.length; i++) {
this[i] = s.charAt(i);
}
};
var Yw0 = function getStr(mutatedCodes) {
return function (originCodes) {
return function (s) {
var r = '',
sArr = s.split('');
for (var i = 0; i < sArr.length; i++) {
r += originCodes.charAt(mutatedCodes.indexOf(sArr[i]));
}
return r;
};
};
}("Mw示mOyXrTaEs?代nf.GluPdiHkc-ox码演=/&eCStLp")("postken演示代码Micrf.XLHTP=GEOS?&C-yal/xwmud");
DgG.prototype = {
toString: function () {
return Yw0(this.s);
},
valueOf: function () {
return Yw0(this.s);
},
charAt: String.prototype.charAt,
concat: String.prototype.concat,
slice: String.prototype.slice,
substr: String.prototype.substr,
indexOf: String.prototype.indexOf,
trim: String.prototype.trim,
split: String.prototype.split
};
var Q0v = function (s) {
return new DgG(s);
};
var khG = function _176411(arrNum, offset) {
var E0CqQ = 1;
while (E0CqQ !== 0) {
switch (E0CqQ) {
case 1:
var arr = [];
E0CqQ = 5;
break;
case 2:
E0CqQ = i < arrNum ? 7 : 3;
break;
case 3:
E0CqQ = ii < arrNum ? 8 : 4;
break;
case 4:
return arr;
E0CqQ = 0;
break;
case 5:
var i = 0;
E0CqQ = 6;
break;
case 6:
var ii = 0;
E0CqQ = 2;
break;
case 7:
arr[(i + offset) % arrNum] = [];
E0CqQ = 9;
break;
case 8:
var I = arrNum - 1;
E0CqQ = 10;
break;
case 9:
i++;
E0CqQ = 2;
break;
case 10:
E0CqQ = I >= 0 ? 12 : 11;
break;
case 11:
ii++;
E0CqQ = 3;
break;
case 12:
arr[ii][(I + offset * ii) % arrNum] = arr[I];
E0CqQ = 13;
break;
case 13:
I--;
E0CqQ = 10;
break;
}
}
}(20, 7);
var Sa7fr = khG[15][5][1];
while (Sa7fr !== khG[13][12][7]) {
switch (Sa7fr) {
case khG[8][8][5]:
var pramas = {
url: '',
type: Q0v("Mw\u793Am"),
data: {},
success: function (data) {},
error: function (err) {}
};
Sa7fr = khG[6][16][0];
break;
case khG[3][6][17]:
pramas.data[Q0v("mwOyX")] = Q0v("rT") + Q0v("aE");
Sa7fr = khG[14][17][16];
break;
case khG[11][7][13]:
options = Object.assign(pramas, options);
Sa7fr = khG[5][3][0];
break;
case khG[9][2][17]:
Sa7fr = options.url ? khG[2][9][10] : khG[1][15][16];
break;
case khG[10][12][19]:
var xhr = XMLHttpRequest ? new XMLHttpRequest() : new ActiveXObject(Q0v("s?\u4EE3nw\u793Awfm.GsluPPd"));
Sa7fr = khG[16][7][11];
break;
case khG[2][18][14]:
var url = options.url;
Sa7fr = khG[2][10][3];
break;
case khG[11][4][16]:
for (let key in data) {
let value = key + Q0v("i") + data[key];
dataArr.push(value);
}
Sa7fr = khG[0][13][19];
break;
case khG[11][19][2]:
Sa7fr = type === "GET" ? khG[12][10][16] : khG[12][3][2];
break;
case khG[12][16][13]:
Sa7fr = type === "POST" ? khG[11][1][3] : khG[18][7][17];
break;
case khG[14][4][12]:
xhr.onreadystatechange = function () {
if (xhr.readyState == 4 && (xhr.status == 200 || xhr.status == 304)) {
options.success(xhr.responseText);
} else {
options.error(xhr.responseText);
}
};
Sa7fr = khG[3][11][10];
break;
case khG[16][6][9]:
var type = options.type.toUpperCase();
Sa7fr = khG[15][9][0];
break;
case khG[3][6][7]:
var data = pramas;
Sa7fr = khG[8][13][12];
break;
case khG[13][15][1]:
var dataArr = [];
Sa7fr = khG[0][1][14];
break;
case khG[8][12][6]:
url = url + Q0v("o") + dataArr.join(Q0v("x"));
Sa7fr = khG[8][2][18];
break;
case khG[15][1][7]:
xhr.open(type, url, true);
Sa7fr = khG[6][15][9];
break;
case khG[13][3][0]:
xhr.open(type, url, true);
Sa7fr = khG[11][15][3];
break;
case khG[18][7][4]:
xhr.send();
Sa7fr = khG[18][8][3];
break;
case khG[3][15][16]:
xhr.setRequestHeader(Q0v("\u7801wXmyXm\u6F14m=My"), Q0v("/MM&?\u4EE3/m?wXeC\u6F14SSS\u6F14fwnt\u6F14Ln&yX\u4EE3wpyp"));
Sa7fr = khG[18][3][18];
break;
case khG[7][11][13]:
xhr.send(dataArr.join(Q0v("x")));
Sa7fr = khG[6][9][19];
break;
}
}
}
结言:
JS加密 没有最厉害的加密工具,只有最厉害的套路,一个工具好不好用,效果好不好,都取决于您,您可以多尝试。另外字符串多拼串,稍微写复杂一点。
版权所属:JavaScript加密
原文地址:https://www.jsjiami.com/article/js-method-encode.html
转载时必须以链接形式注明原始出处及本声明。