美文网首页
字符串改写

字符串改写

作者: 写代码的女孩最可爱 | 来源:发表于2018-12-27 14:17 被阅读0次

    字符串改写

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

    相关文章

      网友评论

          本文标题:字符串改写

          本文链接:https://www.haomeiwen.com/subject/airrlqtx.html