天天看点

网易滑块验证 分析

 提交轨迹数据中,data字段算法:

function VerifyCaptcha(data,token,style_left){//data 轨迹,token 滑块标志
    if (style_left==undefined){
        style_left=175
    }
    pic_width=320,traceData_length=32;
    enData=[];
    for(var i=0;i<data.length;i++){
        enData.push(n(token,data[i]))
    }
    var pLen=0;
    if(enData.length>50){
        pLen=50
    }
    else{
        pLen=enData.length
    };
    var a=sample(enData,pLen),
    i = token,
    r=B(n(i, parseInt(style_left, 10) / pic_width * 100 + ""));//style_left 最终滑块停留的左x,pic_width 底图总长度
    _data={
        d:B(a.join(":")),
        m:"",
        p:r,
        ext: B(n(i, 1 + "," + data.length))//traceData_length 滑动距离长度
    }
    console.log(JSON.stringify(_data));
    return JSON.stringify(_data);

}
           

CB字段算法生成函数定位:

function GetCB(){
    var uid=uuid(32);
    return B(uid);
};
           

继续阅读