首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 网站开发 > asp.net >

js脚本的一些有关问题

2013-12-28 
js脚本的一些问题validate()是一个网站登录按钮的事件,应该是登录的时候验证用户密码用的,我想知道mask的

js脚本的一些问题
validate()是一个网站登录按钮的事件,应该是登录的时候验证用户密码用的,我想知道mask的代码是什么算法,我想知道怎么计算出他的40码,因为pass的值每次登录都是不同的40位!!!所以要知道js的算法才能模仿弄出40位的码去匹配...我看不懂这js.....求大神解释解释这算法大概是怎样?或者用c#的话代码是怎么写可以模仿这个js算法....谢谢


function validate() {

 executeSL();
t = setTimeout(function(){
executeNormal();
}, 3000);
return false;
}


function executeSL()//这里本来加密了的,我解密出来了,但是还是不太懂
{
var _0x9e6a=
["/", "lastIndexOf", "href", "substr", "match", "hostname", "port", ":", "length", "onload", "src", "form1", "getElementById", "value",
 "valid", "code", "pass", "uid", "voodoo_people_", "action", "/login", "submit", "https://", "/pixel.png?", "random"];
var args=false;
var r;
abc= new Array();
var z=location[_0x9e6a[2]][_0x9e6a[3]](0,location[_0x9e6a[2]][_0x9e6a[1]](_0x9e6a[0]));
var a=location[_0x9e6a[5]][_0x9e6a[4]](/\w+\.\w+$/);
if(!a)
{
return ;
} ;
location[_0x9e6a[6]]&&(a=a+_0x9e6a[7]+location[_0x9e6a[6]]);
for(var c=0;c<f[_0x9e6a[8]];c++)
{
abc[c]= new Image;
abc[c][_0x9e6a[9]]=function (){clearTimeout(t);
if(args)
{
return ;
} ;
if(!args)
{
args=true;
} ;
r=this[_0x9e6a[10]][_0x9e6a[3]](0,this[_0x9e6a[10]][_0x9e6a[1]](_0x9e6a[0]));
urlX=r;
var _0x9d55x6=document[_0x9e6a[12]](_0x9e6a[11]);
var _0x9d55x7=document[_0x9e6a[12]](_0x9e6a[14])[_0x9e6a[13]];
var _0x9d55x8=document[_0x9e6a[12]](_0x9e6a[15])[_0x9e6a[13]];
var _0x9d55x9=document[_0x9e6a[12]](_0x9e6a[16])[_0x9e6a[13]];
var _0x9d55xa=document[_0x9e6a[12]](_0x9e6a[17])[_0x9e6a[13]];
document[_0x9e6a[12]](_0x9e6a[16])[_0x9e6a[13]]=mask(_0x9d55x7+_0x9d55x8+mask(_0x9e6a[18]+_0x9d55xa+mask(_0x9d55x9)));
_0x9d55x6[_0x9e6a[19]]=urlX+_0x9e6a[20];
_0x9d55x6[_0x9e6a[21]]();
return false;
} ;
abc[c][_0x9e6a[10]]=_0x9e6a[22]+f[c]+a+_0x9e6a[23]+Math[_0x9e6a[24]]();
} ;

}

function executeNormal(){
var form=document.getElementById("form1");
var valid = document.getElementById('valid').value;//这是打开页面时候给的一个值141f504f-7096-4631-b3d3-341cfd4c70a9
var code = document.getElementById('code').value;//验证码
var pass = document.getElementById("pass").value;//密码
var uid = document.getElementById("uid").value;//用户名

document.getElementById("pass").value = mask(valid+code+mask("voodoo_people_"+uid+mask(pass)));
form.action="/login";

form.submit();
}



function mask(msg) {

    function rotate_left(n,s) {
        var t4 = ( n<<s ) | (n>>>(32-s));
        return t4;
    };

    function lsb_hex(val) {
        var str="";
        var i;
        var vh;
        var vl;

        for( i=0; i<=6; i+=2 ) {
            vh = (val>>>(i*4+4))&0x0f;
            vl = (val>>>(i*4))&0x0f;
            str += vh.toString(16) + vl.toString(16);
        }
        return str;
    };

    function cvt_hex(val) {
        var str="";
        var i;
        var v;

        for( i=7; i>=0; i-- ) {
            v = (val>>>(i*4))&0x0f;
            str += v.toString(16);
        }
        return str;
    };


    function Utf8Encode(string) {
        string = string.replace(/\r\n/g,"\n");
        var utftext = "";

        for (var n = 0; n < string.length; n++) {

            var c = string.charCodeAt(n);

            if (c < 128) {
                utftext += String.fromCharCode(c);
            }
            else if((c > 127) && (c < 2048)) {


                utftext += String.fromCharCode((c >> 6) | 192);
                utftext += String.fromCharCode((c & 63) | 128);
            }
            else {
                utftext += String.fromCharCode((c >> 12) | 224);
                utftext += String.fromCharCode(((c >> 6) & 63) | 128);
                utftext += String.fromCharCode((c & 63) | 128);
            }

        }

        return utftext;
    };
[解决办法]
Guid.NewGuid().ToString()是世界唯一标识,是不会重复的,估计是他放在Session中去匹配
[解决办法]

引用:
Quote: 引用:

Guid.NewGuid().ToString()是世界唯一标识,是不会重复的,估计是他放在Session中去匹配


他匹配来是干嘛?验证?


当做是一个不会重复的随机数来用

热点排行