滑块拖动验证码智能识别验证码技术(持续更新)

众所周知,验证码是用来防机器的。但是,随着神经网络的发展,近几年验证码难度持续上升,这玩意儿的存在存粹就是一种负担,特别是国内到处都是的【Ji验】。本文针对“J验”及其他类似验证方式。

滑块拖动验证码智能识别验证码技术(持续更新)_第1张图片

项目地址https://github.com/yixinNB/FuckCaptcha

判断人机原理

1.拖动

滑块拖动验证码智能识别验证码技术(持续更新)_第2张图片

2.拖的背后

轨迹分析

首先会记录你拖动的轨迹(官方承认),根据轨迹初步判断是否为机器人。

例如直接平滑地拖过去100%提示“错误,请重试”(亲自实验了的)。

真人拖动图像 真人拖动图像

浏览记录分析

如果仅仅只在一个或几个页面进行大量验证码验证,那是肯定过不去验证的。这个肯定是难度最大的部分,也是最能有效防止脚本攻击的东西,这点是自己很难写的。模拟也很烦,资源消耗也高。这里不再过多讲述。

 

 

 

 

 

开始识别验证码

滑块拖动验证码智能识别验证码技术(持续更新)_第3张图片滑块拖动验证码智能识别验证码技术(持续更新)_第4张图片

肉眼一眼就可以看出有一个十分明显的深色区域,识别的第一步就是精准找到它(误差要求≤2像素,网上用python的开源库很多都达不到这个要求)

由上图可见,干扰肯定会有的,如果简单的判断深色区域肯定会被干扰影响。

主要算法有判断该深色方块的大小,形状,还有周围的颜色,整个识别区域整体的颜色,再根据其他疑似区域的数据来综合判断。这个就需要有耐心,一点一点去改进就行。

前面写的已经写过,找到这个黑方块才是第一步,也是最简单的一步。

拖动的过程

拖动的过程肯定是模拟真人拖动的过程,下图是我最开始用的算法,因为代码量巨大,并且还是可以被识别判定为机器,现在已经停止使用

滑块拖动验证码智能识别验证码技术(持续更新)_第5张图片 一种十分智障的拖动算法

因为现在还在实验阶段,没有完全成熟的代码,所以先把采集到的真人数据发出来,圈出来的地方就是需要特别注意的。

滑块拖动验证码智能识别验证码技术(持续更新)_第6张图片

滑块拖动验证码智能识别验证码技术(持续更新)_第7张图片

滑块拖动验证码智能识别验证码技术(持续更新)_第8张图片

滑块拖动验证码智能识别验证码技术(持续更新)_第9张图片

 

 

 

 

 

 

 

 

 

识别测试

https://github.com/yixinNB

bug还挺多,寒假上线测试

求大佬解决BUG(网络传输问题)       https://github.com/yixinNB/cs-internet

基本完工了

先来张GIF给你们预告下,免得你们说我瞎吹

滑块拖动验证码智能识别验证码技术(持续更新)_第10张图片

 

 

 

新闻

19.12.29已经可以大致模拟了,机器拖动首次通过J验

滑块拖动验证码智能识别验证码技术(持续更新)_第11张图片 人工智能模拟拖动数据可视化图像(已经很接近真人拖动)

19.12.28用户界面大致完工

滑块拖动验证码智能识别验证码技术(持续更新)_第12张图片

 

你可能感兴趣的:(滑块拖动验证码智能识别验证码技术(持续更新))