验证码自动识别的前世今生

验证码的自动识别自从互联网出现,就一直在演进。

之所以出现验证码,是网站防治程序化访问网站后台,造成验证后果。

一、验证码自动识别1.0时代

在互联网出现的前三十年,基本都是简单的图形验证码,由数字、文字等组合而成。比如如下验证码形态。

这时候的验证码形态简单。

 

 

 

 

 

 

自动识别的方法主要是:

1、打码平台

打码平台盛行了十多年,接入打码平台后,验证码图片传给打码平台后台,再将验证码分发给其他打码工作人员,进行人工识别,中间时延比较长,大概十多秒。但是相对来说,准确率比较高。

现在,打码平台基本消失,主要是人员成本越来越高,并且新一代技术更新迭代,原来的静态验证码也已经不适应了。后面再自动识别3.0识别,将会降到互动类型的验证码。

2、OCR识别

这是基于图片识别技术,小编当年也尝试过。图片本质上所有无数个像素点组成,我们看到的图片形状均是如此。

因此很多技术就基于研究图片像素上,比如先对图片进行去噪,将一些干扰像素点去掉,比如二极化,将彩色图片变成黑白图片,便于我们识别形状等,再经过一些列的技术处理和比对,先用大量的验证码作为样本,再和新的验证码图片进行比对,相似度高的就算识别出来了。

小编当年用这个技术,也完成了多个网站验证码的识别,识别效果不错,不过非常依赖特定的网站,也就是验证码的类型,如果验证码有变动,也就是样本库上没有的话,识别效果就很差了。

二、验证码自动识别2.0时代

这个过程也就历经5-10年,比较短,主要是互联网的飞速发展,衍生出来非常多的验证码类型,多如鸟毛。

这个时候大数据非常盛行,这里比较有名的就是12306火车购票系统。出现了大量的图片验证码类型,已经不局限于文字和数字,这个时候传统的技术就没法整。

道高一尺,魔高一丈,攻防演练而言,自动识别技术就衍生出了云端大数据识别。简单而言就是采集目标网站的验证码图片,基本上将已经出现的验证码都采集到,可以通过遍历方式也可以收集用户端出现的验证码图片,最后云端进行大数据比对,进而找出结果。

 

还有比较具有代表性的是极验的出现,这是基于互动式的验证码,需要人为进行互动,采集用户行为来判断是否是人工操作。

 

这类验证码主要分为点击类、滑动、运算等,需要用户根据动态图片的变化,来给出答案,比较带有一点智商的感觉。中间产生了很多有意思的验证方式,比如给定左边一张图片,要你根据左边图片上指示,再右侧图片上找出答案,等等之类的。验证码的形式更加多样化,识别的难度也更高了。因为你不知道那些开发者脑洞打开,让你需要动脑筋才能完成验证。

 

三、验证码自动识别3.0时代

这是属于AI的时代,利用深度学习算法,通过大模型进行识别,国内布局比较早的有百度的飞桨系统,可惜现在在AI的市场里,主要是腾讯、阿里、抖音三分天下了。

落寞的飞桨,不过也算是国内布局AI最早,先行者了,让后面的入局者少走了不少弯路,国产AI的进程加速了,应该是要给百度致敬的。

 

2021年,小编开始使用飞桨框架,开发出来图形验证码自动识别模型,歪兔网还算是做得比较好的。

 

 

 

非常让我惊讶的是,通过十多G验证码图片集训练出来的模型,居然只有十多M,并且这10M的模型识别能力非常强大,至少把我训练集中几十万张验证码都学习了,基本都能识别出来。

非常神奇,至今感叹神奇。非常后悔,当初咋不坚定的买入人工智能板块的股票呢,不然不至于现在还是一名纯技术屌丝。

验证码自动识别至今已演进到了人工智能识别阶段,我相信以后黑白攻防演练会更加激烈,毕竟只有对抗,才会促进技术不断进步。人工智能时代,你准备好大干一场了吗?加油,为国产AI进一份力!

### 关于面包板电源模块 MB102 的 USB 供电规格及兼容性 #### 1. **MB102 基本功能** 面包板电源模块 MB102 是一种常见的实验工具,主要用于为基于面包板的小型电子项目提供稳定的电压输出。它通常具有两路独立的稳压输出:一路为 5V 和另一路可调电压(一般范围为 3V 至 12V)。这种设计使得它可以满足多种芯片和传感器的不同工作电压需求。 #### 2. **USB 供电方式** MB102 支持通过 USB 接口供电,输入电压通常是标准的 5V DC[^1]。由于其内部集成了 LM7805 稳压器以及可调节电位器控制的直流-直流变换电路,因此即使输入来自电脑或其他低功率 USB 设备,也能稳定地向负载供应电力。不过需要注意的是,如果项目的功耗较高,则可能超出某些 USB 端口的最大电流能力(一般是 500mA),从而引起不稳定现象或者保护机制启动断开连接的情况发生。 #### 3. **兼容性分析** 该型号广泛适用于各种微控制器单元 (MCU),特别是那些像 Wemos D1 R32 这样可以通过杜邦线轻松接入并共享相同逻辑级别的系统[^2]。另外,在提到 Arduino Uno 板时也表明了良好的互操作性,因为两者均采用相似的标准接口定义与电气特性参数设置[^4]: - 对于需要 3.3V 工作环境下的组件来说,只需调整好对应跳线帽位置即可实现精准匹配; - 当涉及到更多外围扩展应用场合下,例如带有多重模拟信号采集任务的情形里,利用 MB102 提供干净无干扰的基础能源供给就显得尤为重要了[^3]。 综上所述,对于打算构建以单片机为核心的原型验证平台而言,选用具备良好声誉记录且易于获取配件支持服务链路上下游资源丰富的品牌产品——如这里讨论过的这款特定类型的配电装置不失为明智之举之一。 ```python # 示例 Python 代码展示如何检测硬件状态 import machine pin = machine.Pin(2, machine.Pin.IN) if pin.value() == 1: print("Power supply is stable.") else: print("Check your connections and power source.") ```
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值