栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Python

京东滑块验证码轨迹_京东滑块验证码模拟登录?

Python 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

京东滑块验证码轨迹_京东滑块验证码模拟登录?

2022年最新京东滑块验证码破解思路(算法过验)

京东登陆滑块的代码已经很久没有修改了,滑动逻辑为jq代码,且未加密。综合难度不高。下面讲一下实现思路;实现语言主要是nodejs+python; nodejs的优势的直接运行从浏览器拷出来的代码,python也可以实现,不过要使用v8插件,python主要用opencv识别暗块的位置。登陆部分逻辑可以使用http,或者selenuim模拟登陆,我是使用selenuim,因为这样比较简单

post一下,很明显d 参数就是轨迹加密函数

代码定位 getCoordinate方法再拖动一次获取轨迹

轨迹主要由 x坐标,y坐标,时间戳组成

主要代码逻辑,我在jd网站上,完成的慢慢拖动一次,获取一次完整的滑轨,然后又拖动一次左右换晃动的滑轨,获取晃动滑轨,截取完整滑轨+晃动滑轨生成一个新的滑轨,替换时间戳,这个逻辑的成功大概在80%;因为不需要高并发,这个就可以满足需求,当然也可以使用算法生成,网上有代码,不过测试通过率不高。有时间的可以研究下

const fs = require('fs');
let base_slide = []					//基础滑轨
let push_slide = []					//结束时,左右晃动一下
function getSlide(w){               //生成滑动轨迹
    let index=0,slide=[];
    let indexTime =(new Date().getTime().toString()).substr(0,9);
    for(let item of base_slide){ 
        index++
        item[2]=Number(indexTime+(item[2]).toString().substr(-4))
        if(item[0]>=(w+Number(base_slide[0][0]))){
            slide = base_slide.slice(0,index)
            slide.push([(w+Number(base_slide[0][0])).toString(),item[1],item[2]+700+Math.ceil(Math.random()*1000)])
            break;
        } 
    }
    let last = Number(slide[slide.length-1][0])
    let pIndex=0;
    for(let item of push_slide){
        let times;
        if(pIndex===0 || pIndex === push_slide.length-1){
            times = slide[slide.length-1][2]
        }else{
            times = slide[slide.length-1][2] + (push_slide[pIndex+1][2] - push_slide[pIndex][2])
        }
        slide.push([
            (item[0]+last).toString(),
            '369',
            times
        ]);
        pIndex++;
    }
    return slide;
}
module.exports = getSlide;

这样就完成了,如果有需要可以将完整demo放到github

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/782999.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号