字符串改写

字符串改写

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;
}

你可能感兴趣的:(字符串改写)