Skip to content

使用opencv的模板匹配破解滑块验证码:以今日头条PC端登录页面滑块验证码为例。The cracking of the slider captcha

Notifications You must be signed in to change notification settings

chushiyan/slide_captcha_cracking

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

21 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

一、首先看看破解的效果图

效果1 效果2 效果3 效果4

二、滑块验证码的破解

滑块验证码的破解的难点主要有两个:计算出滑块到缺口的距离和模拟人拖动滑块的轨迹。
如何计算出滑块到缺口的距离?从网上的资料来看,主要有两种方式:自己使用Pillow库实现算法,
使用OpenCV库提供的现成方法。本文就使用后者,简单而又强大、成功率高。

本文主要参考掘金播客
但是由于它的注释太少,也未给出完整代码。所以,决定写这篇教程。

三、什么是OpenCV?什么是OpenCV-python?

OpenCV(Open Source Computer Vision Library)是一个开源的计算机视觉库,
提供了很多处理图片、视频的方法。虽然是C/C++开发的,但是提供了 Python、Java、MATLAB 等其他语言的接口。 OpenCV-python库就是使用pthon操作OpenCV的一个库。

四、为什么要用OpenCV-python库?

说白了,就是OpenCV库提供了一个方法(matchTemplate()):从一张较大的图片中搜索一张较小图片,
计算出这张大图上各个区域和小图相似度。调用这个方法后返回一个二维数组(numpy库中ndarray对象),
从中就能拿到最佳匹配区域的坐标。换到滑块验证码上面,滑块背景图片是大图,滑块是小图。

opencv-python官网
cv.matchTemplate()方法
今日头条PC端登录页面

五、环境

首先,selenium、谷歌浏览器、谷歌浏览器驱动等环境是必须的。

安装OpenCV-python库

pip install opencv-python

或者使用阿里源:

pip install -i http://mirrors.aliyun.com/pypi/simple/ --trusted-host mirrors.aliyun.com opencv-python

六、代码

main.py 破解今日头条PC端登录页面滑块验证码的代码
get_img.py 采集100对验证码(滑块背景图片和滑块)

七、备注

现在已经验证失败了。代码执行时,哪怕自己手动拖动滑块也验证不过。应该是开启了selenium检测。 本文仅作为技术交流使用,如有侵权请联系我。 邮箱:Y2h1c2hpeWFuMDQxNUAxNjMuY29t(base64)

About

使用opencv的模板匹配破解滑块验证码:以今日头条PC端登录页面滑块验证码为例。The cracking of the slider captcha

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Languages