利用边缘检测实现的滑动验证码破解

2017-06-29 17:36:58 +08:00
 chxj1992

最近可能是和验证码杠上了 ...

项目地址: https://github.com/chxj1992/slide_captcha_cracker

Demo: http://slide-captcha.chxj.name

相比之前利用神经网络训练来破解普通验证码,这个可能更具通用性,因为不用依赖训练数据。

滑动验证码拼图的定位问题只是破解过程中的一个环节,代码主要采用 opencv 提供的一些函数对图片进行处理后来实现定位,在这里只是提供一个思路,抛砖引玉。

关于滑动验证码

演示项目所用到的滑动验证码的实现相对简单,整个交互过程主要包含以下步骤:

实现原理

基于以上的验证码实现,本例子通过以下方式实现对验证码拼图在背景图中的定位(其他步骤较为简单,不做考虑):

其他问题

拼图的定位只是破解滑动验证码的一个中间环节,想要破解一个好的验证码产品除了定位拼图在整个图片中的位置外,可能还有以下几个问题需要考虑:

9479 次点击
所在节点    Python
5 条回复
misaka19000
2017-06-29 17:58:35 +08:00
这种验证的核心是不是对滑动轨迹的坐标进行计算,以此来进行 robot 判断?
hanbing135
2017-06-29 18:07:32 +08:00
完全看不懂 这玩意不能用机器学习训练出来吗
chxj1992
2017-06-29 18:19:34 +08:00
@misaka19000 对,我觉得那个也是一个重点,但如果不是用第三方(极验那种)提供的实现,自己也比较难实现对轨迹的校验,所以这里只讨论了定位拼图位置的问题
chxj1992
2017-06-29 18:23:06 +08:00
@hanbing135 之前也想过,如果用深度学习的方法,首先需要大量的训练数据,并且如果以背景图的定位点作为输出结果来分类,训练难度也比较大。还有就是如果背景图会变化,深度学习的方式也很受影响。边缘检测在这些方面要好得多。对机器学习了解不多,说的不对请指正哈
NaVient
2017-06-30 09:46:31 +08:00
楼主的想法很赞,给人的启发也挺大的,Mark了改天试下

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/371973

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX