对火车票验证码检测的推测

李国帅 2018/1/26

自己对火车票验证码做了个简单的推测,也许对也许不对,提供大家共享。

我想大概有两个步骤:1、识别码的收集,2、识别码处理,3、识别码对比。

image

1、识别码的收集

利用第三方买票工具收集,记录出现了那些登录或者购票验证码图像,用户又是如何选择的,这样慢慢建立起庞大全面的验证码数据库,当然这部分也可以直接向有关部门购买。

有了这么一个数据库,就有了验证码比对的基础,说不定还可以把数据库卖给别的做购票工具的人。


2、识别码处理

本以为每个识别图像都是单独的图片,后来发现整个图片组都是一个图像。这样就存在两种可能。

1、拆分模式

把整个图像组看作是分离的图像:关键字图像(“请点击下图中所有的”后面的文字),八个拆分的识别码图像。

关键字图像中最多包含两个关键字,组合关系较少,因此可以将整个一行图像作为一个关键字图像,建立索引。

八个识别码图像分别建立索引。

2、整图模式

把整个图片组作为一个识别图像建立索引。

采用第一种方式,将会需要对图像进行拆分,相对来说比第二种方式复杂,不过相对来说可能更加合理而高效。


3、识别码对比

关于图像的对比,可能有多种方法,使用opencv库,可能还要了解一下小波分析之类的概念,或者说直接使用像素对比。

不过也许这一切根本就不需要,因为用户对验证码进行了对比。最根本的原因是火车票验证码图片具有明显的特征:图像大小固定,色彩固定,文件大小固定。这个特征大大降低了识别码对比的难度,使得对比时不用做图像分析。

第一部分已经讲到,采用第三方购票工具,已经在收集了验证码图片和正确的选择方式,下一次只要知道上一次如何选择,本次就知道如何选择了

首先对每一张验证图片生成一个256位的MD5,以及对应的验证码选择。

如果第一种模式,根据关键字图像的MD5查询到库中关联识别图像的多个MD5图像,然后将组合图中的识别图MD5与库中的MD5图像对比,获取要选择的序号。

如果第二种模式,那么会简单一些,直接根据验证码的MD5查询出要选择的序号。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

微澜-

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值