字符串改写
1.btoa
Base64
以改写'constructor'为例
//encode
btoa('constructor');
//decode
atob("Y29uc3RydWN0b3I=");
2.escape(web标准已弃用可使用encodeURI)
十六进制
主要用于处理特殊字符(空格、小括号、大括号等)
//encode
var a = `function a(){ console.log('haha') }`;
//decode
unescape("function%20a%28%29%7B%20console.log%28%27haha%27%29%20%7D");
3.charcodeAt
ASCII
用于处理json数据、加密js串
//encode
function unicodey(json) {
var json = json;
var str = JSON.stringify(json);
str = str.replace(/\ +/g, "");
str = str.replace(/[\r\n]/g, "");
var arr = str.split('');
for (var i = 0; i < arr.length; i++) {
arr[i] = arr[i].charCodeAt() + 'з';
}
RES = arr.join('');
console.log(RES)
}
//decode
var code = String.fromCharCode.apply(null, RES.split(/з/ig));
4.数组元素拼接
以改写'constructor'为例
//encode
var abty = "abcdefgoushitrn";
var str = btoa(abty[2] + abty[7] + abty[14] + abty[9] + abty.slice(12, 14) + abty[8] + abty[2] + abty[12] + abty[7] + abty[13]);
//decode
atob(str);
5.将多个字符串放在数组中
常用于改写代码形式
var y = ['constructor','b','c','d'];
var y1 = y[0];
var y2 = y[1];
if(1){
return y1;
}
网友评论