charCodeAt、parseInt、number.toString(num),fromCharCode方法实现加密、解密

这两天为了改mobiscroll 测试版本,趁机学习一下简单的加密和解密办法

 

例子:给一长串16进制数字,然后经过解密,最终执行方法

    $(function() {
        var str="function abc(){alert('2234huangbiao')}";
        jiami(str);
        var codeStr = "66756e6374696f6e2061626328297b616c6572742827323233346875616e676269616f27297d";
        var lastStr = jiemi(codeStr);
        eval("(" + lastStr + ")()") ;
    });

//对字符串加密
    function jiami(str){
//        var str = "huangbiao";
        //获取字符串的字符长度
        var len = str.length;
        var result = "";
        for(var i=0;i<len;i++){
            //str.charCodeAt(i)获取str第i个字符的ASCII值
            //str.charCodeAt(i)).toString(16) 将ASCII码值转为16进制
            console.log("str.charCodeAt(i) : " + str.charCodeAt(i) +  " ----- parseInt(str.charCodeAt(i)).toString(16) : " + parseInt(str.charCodeAt(i)).toString(16));
            //parseInt("241",16),将十六进制的值241转为10进制
            result = result + parseInt(str.charCodeAt(i)).toString(16);
        }
        console.log(" result : " + result);
        return result;
    }

//对字符串解密
    function jiemi(codeStr){
//        var codeStr = "6875616e676269616f";
        var strArray = codeStr.split("");
        var tempStr = "";
        //保存最终将要得到的字符串
        var result = "";
        for(var i=0;i<strArray.length;i++){
            //如果i不能够被2整除,则
            if(i % 2 != 0){
                tempStr = tempStr + strArray[i];
                //将得到的16进制字符串转为ASCII码,最终转为字母
                var _tempAsciiCode = parseInt(tempStr,16)
                var _tempChar = String.fromCharCode(_tempAsciiCode);
                result = result + _tempChar;
            }else{
                //如果i能够被2整除,则给tempStr重新赋值
                tempStr = strArray[i];
            }
        }
        console.log("result : " + result);
        return result;
    }

 

 

 

 

你可能感兴趣的:(toString)