京公网安备 11010802034615号
经营许可证编号:京B2-20210330
Python实现图片滑动式验证识别方法
1 abstract
验证码作为一种自然人的机器人的判别工具,被广泛的用于各种防止程序做自动化的场景中。传统的字符型验证安全性已经名存实亡的情况下,各种新型的验证码如雨后春笋般涌现。目前最常见的一种形式就是“滑动拼图式”
2 内容概述
关于滑动式验证,最早由国内某网络安全公司首次提出的行为式验证,以滑动拼图解锁的方式呈现在世人面前。然后大概过了好几年之后,各种各样的滑动式验证产品都出来了,那么这些看似一样的产品,它们的安全性到底如何呢?
本文特意挑选出了一些后来者的小厂商的滑动式验证来做下实验,仅从第一步的图像学上分析一下安全性。因为我的主技术路线是图像学,关于前端的js并不熟悉,所以就只在图像学上点到即止即可。仅供会一些自动化技术的同学提供一些知识补充吧。
由于研究的实验对象实在是太简单,所以本文涉及的一些图像学的知识也不难,基本上python的初级选手就可以跑通本程序。仅供大家学习学习。
3 研究对象
某小站点上由小厂商提供的“滑动式验证”:
使用python写一个简单的爬虫自动化脚本,将此网站上的验证码资源多请求几次,并保存到本地,观查图片特点。
一般情况下,这一步是必须的,多下载一些图片,很多规律是可以一眼看出的。比如,从公开的页面中,连续请求此验证的资源 100次,下载100张图片后。
一眼看上去,此验证的图片素材都只有一种模式,那么就放心了,因为这个问题就比较单一,而不是多模式下你必须要解决多个问题。
4 定性分析
将这种单一模式的图片筛选一张出来,如下:
发现如下特点:
和前端展示相关的图片有:方块位置提示图A,小方块B,完整背景图C。
A图完全是由B和C合成
显然,设计这个验证图片的人没啥安全方面的经验,有如下两个产品细节没有注意:
对图片没做任何的特殊处理
对外公开提供了过多信息
于是使得识别此图片的位置变得极其简单。
5 定量分析
在前面一小节中,我们只是直观的看到了这些图片的一些特别,但是要解答这个题目,还需要进行量化,量化后才能程序化,程序化后才能全自动化。
使用matplotlib工具打开此图片。量化得到如下参数:
图片整体规格:w:240,h:450
由上到下分为三部分,每部分高度为150
6 求解图片
很明显,只要将第一张图和第三张图相应的像素相减,神奇的事情就发生了:
“左上” 减去 “右下” 就得到 “左下”的结果。
这个时候,对x方向的R通道的像素点进行累加统计。
得到如下的统计图:
然后对这个曲线求一阶导数或者只要发现有个突变值超过最大像素值的某百分比时,即可得到最左边的那个y方向突变点的位置。
到此为止,此图片的位置已经成功解出。
下面是相应的python代码:
import numpy as np
...
def get_boundary(mask, axis, ratio=0.6):
"""
对灰度图的某个channel做像素统计
"""
sum_along_axis = np.sum(mask, axis=axis)
max_value = np.max(sum_along_axis)
bound_value = max_value * ratio
bvalue = (sum_along_axis >= bound_value).astype('int8')
return np.where(bvalue != 0)[0][0]
def get_predict_ans(img):
"""
根据分类出来的图像,找到相应的图像位置
传入二进制的图片,返回答案
:param img:
:return:
"""
nd_img = np.array(img)
w_pos = get_boundary(nd_img, 0) # 根据分布图找到边界位置
return w_pos
总结
以上所述是小编给大家介绍的Python实现图片滑动式验证识别方法,希望对大家有所帮助
数据分析咨询请扫描二维码
若不方便扫码,搜微信号:CDAshujufenxi
“2026年考什么证书有用”这个问题,不能用一个榜单回答。同一张证书,对想进门槛岗位的人、想补岗位技能的人、想评职称的人,价 ...
2026-10-21经济学专业考什么证书,没有唯一答案。这个专业的出口本来就分散:有人去银行券商,有人做财会审计,有人转向数据分析,也有人走 ...
2026-10-21大学生考证最常见的误区,是把“证书清单”当成答案。真正有用的做法是先确定专业方向和目标岗位,再按“通用基础→岗位技能→行 ...
2026-10-21“中国证书含金量排行”没有跨行业、跨证书类型的统一权威榜单。准入类证书的价值在于“没有它不能干”,职称类证书的价值在于聘 ...
2026-10-21“现在什么证书含金量高”这个问题,很难用一个榜单回答。同一张证书,对想进教师岗的在校生、想评职称的在职工程师、想补数据分 ...
2026-10-21“大学里什么证书比较有含金量”这个问题,很难用一张榜单回答。同一张证书,对想进银行风控岗的学生可能是加分项,对准备考教师 ...
2026-10-21大学生问“拿什么证书”,真正要解决的不是收集一张榜单,而是判断三件事:这个证书在校期间能不能报,它对应什么岗位的什么工作 ...
2026-10-21“考哪些证书有用”很难用一张榜单回答。同一本证书,对想进会计事务所的人是门槛,对想做运营的人可能只是加分,对工作十年的人 ...
2026-10-21大学生现在能考的证书,主要是三类:不限专业、无工作年限要求的通用基础证书,对应具体岗位技能的证书,以及部分行业入门级认证 ...
2026-10-21先说结论:产品经理升职快,通常不是靠多考几个证,而是把四类能力补到“能拿出可衡量成果”的程度——业务理解与指标定义、数据 ...
2026-10-21产品岗的晋升加薪,通常不是“熬年限”熬出来的,而是三条线同时成立:业务结果能说清、能力结构对得上目标职级、成果拿得出手。 ...
2026-10-21产品策划的“必备技能”没有全行业统一大纲。互联网产品岗要写需求文档、画原型、跟进上线;活动或营销策划岗更侧重活动机制、传 ...
2026-10-21产品策划想快速成长,关键不是把工具学一遍,而是围绕真实工作流补齐判断力。需求调研、方案设计、项目推进、上线复盘这四段,决 ...
2026-10-21产品策划岗的知识体系可以拆成四层:业务与用户理解、需求与方案设计、项目推进协作、数据验证与复盘。这四层不是四门课,而是从 ...
2026-10-21财务人员提升业务技能,核心不是多考几个证,而是按“财务专业实操→业务理解与业财融合→数据分析与工具”三层补齐,再按自己当 ...
2026-10-21财务经理问“怎么快速提升”,最容易走的一条弯路是先报一堆课、考一堆证,回头发现月度工作还是编报表、对差异、催报销。真正拉 ...
2026-10-21数据敏感度常被误解成“对数字反应快”或“会写公式”。对财务经理而言,它更接近一套可重复的动作:看到关键指标变化,能判断是 ...
2026-10-21财务经理这个岗位,最容易出现的认知偏差是把“会计做得好”等同于“能当财务经理”。核算岗位的核心是把账做准、按时出表;财务 ...
2026-10-21财务顾问选课,先别急着看“热门榜单”。同样一门数据分析课,对有财务基础、正卡在方案测算的人有用,对刚转岗、连产品分类和客 ...
2026-10-21财务顾问这个岗位名称,在不同机构里指向的工作并不相同。在银行、券商、保险和第三方财富机构中,理财顾问方向的核心任务是理解 ...
2026-10-21