验证码的自动识别自从互联网出现,就一直在演进。
之所以出现验证码,是网站防治程序化访问网站后台,造成验证后果。
一、验证码自动识别1.0时代
在互联网出现的前三十年,基本都是简单的图形验证码,由数字、文字等组合而成。比如如下验证码形态。
这时候的验证码形态简单。
自动识别的方法主要是:
1、打码平台
打码平台盛行了十多年,接入打码平台后,验证码图片传给打码平台后台,再将验证码分发给其他打码工作人员,进行人工识别,中间时延比较长,大概十多秒。但是相对来说,准确率比较高。
现在,打码平台基本消失,主要是人员成本越来越高,并且新一代技术更新迭代,原来的静态验证码也已经不适应了。后面再自动识别3.0识别,将会降到互动类型的验证码。
2、OCR识别
这是基于图片识别技术,小编当年也尝试过。图片本质上所有无数个像素点组成,我们看到的图片形状均是如此。
因此很多技术就基于研究图片像素上,比如先对图片进行去噪,将一些干扰像素点去掉,比如二极化,将彩色图片变成黑白图片,便于我们识别形状等,再经过一些列的技术处理和比对,先用大量的验证码作为样本,再和新的验证码图片进行比对,相似度高的就算识别出来了。
小编当年用这个技术,也完成了多个网站验证码的识别,识别效果不错,不过非常依赖特定的网站,也就是验证码的类型,如果验证码有变动,也就是样本库上没有的话,识别效果就很差了。
二、验证码自动识别2.0时代
这个过程也就历经5-10年,比较短,主要是互联网的飞速发展,衍生出来非常多的验证码类型,多如鸟毛。
这个时候大数据非常盛行,这里比较有名的就是12306火车购票系统。出现了大量的图片验证码类型,已经不局限于文字和数字,这个时候传统的技术就没法整。
道高一尺,魔高一丈,攻防演练而言,自动识别技术就衍生出了云端大数据识别。简单而言就是采集目标网站的验证码图片,基本上将已经出现的验证码都采集到,可以通过遍历方式也可以收集用户端出现的验证码图片,最后云端进行大数据比对,进而找出结果。
还有比较具有代表性的是极验的出现,这是基于互动式的验证码,需要人为进行互动,采集用户行为来判断是否是人工操作。
这类验证码主要分为点击类、滑动、运算等,需要用户根据动态图片的变化,来给出答案,比较带有一点智商的感觉。中间产生了很多有意思的验证方式,比如给定左边一张图片,要你根据左边图片上指示,再右侧图片上找出答案,等等之类的。验证码的形式更加多样化,识别的难度也更高了。因为你不知道那些开发者脑洞打开,让你需要动脑筋才能完成验证。
三、验证码自动识别3.0时代
这是属于AI的时代,利用深度学习算法,通过大模型进行识别,国内布局比较早的有百度的飞桨系统,可惜现在在AI的市场里,主要是腾讯、阿里、抖音三分天下了。
落寞的飞桨,不过也算是国内布局AI最早,先行者了,让后面的入局者少走了不少弯路,国产AI的进程加速了,应该是要给百度致敬的。
2021年,小编开始使用飞桨框架,开发出来图形验证码自动识别模型,歪兔网还算是做得比较好的。
非常让我惊讶的是,通过十多G验证码图片集训练出来的模型,居然只有十多M,并且这10M的模型识别能力非常强大,至少把我训练集中几十万张验证码都学习了,基本都能识别出来。
非常神奇,至今感叹神奇。非常后悔,当初咋不坚定的买入人工智能板块的股票呢,不然不至于现在还是一名纯技术屌丝。
验证码自动识别至今已演进到了人工智能识别阶段,我相信以后黑白攻防演练会更加激烈,毕竟只有对抗,才会促进技术不断进步。人工智能时代,你准备好大干一场了吗?加油,为国产AI进一份力!