我们来看看 ChatGPT 怎么回答:
啊不对,放错图了......
好的,对话结束。
-----------------我开玩笑的-------------------
正式开搞
以最新一代的智能验证码为例,我们来看看具体破解过程:
首先是识别元素的提取,即当一张图片出现用户需要知道这张图片的答案在哪里,比如说要把滑块拖到哪个地方、图片上有哪些元素、所在的位置是怎样的,这些都是需要破解的。
一般而言,有以下几个步骤:
一是识别元素群,需要大量爬取目标验证码的元素。
二是对目标验证码进行人工标注,标注的数量越多,样本数量就越多,最终训练的模型效果就越好,这其中就会用到图像识别的一些模型以及卷积神经网络等。
三是自动化识别,即可通过模型就知道这张图片的答案在哪里,知道了答案之后,接下来就是如何完成验证了。
这里会涉及到如何构造合法的验证数据。
对于智能验证码而言,它需要的不仅是答案本身,更关注验证过程中的数据。这其中又有几种思路。
一种思路是可以破解整个 JS 文件,即完全逆向验证码 JS 文件,这样一来你就可以知道它在验证过程中收集哪些数据,这些参数又是如何拼装的,参数是如何加密的,也就可以实现脱机运行,不用依赖浏览器环境自行组装参数提交验证,但这个方式成本相对较高,周期也会更长。
另一种思路是UI 自动化。即当我们知道图片上的答案之后,可通过自动化脚本去驱动浏览器上的元素自动化操作,进而完成验证。相对于上一种思路其成本较低。 (此处应有视频,但是视频不好上传,我放弃了)
打码平台的基本原理是利用人工智能技术实现对验证码设计原理的突破。
把获取到的验证码相关信息提交至打码平台,打码平台负责破解验证码,然后把正确的验证结果返回,然后我们再带着正确的验证结果去请求数据页面,大大加大了验证码被破解的风险。
目前打码平台破解验证码方式主要是机器破解和人工打码两种。
机器破解的好处在于自动化程度高,识别速度快,而且对于单词调用价格低,缺点是需要花费大量的时间去破解验证码的验证方式,前期投入的工作量会比较大,而且有时候机器破解的识别准确率也会有一定的误差导致验证失败。
人工打码则是在打码平台建立一个任务平台,将获取到的验证码信息封装成任务提交到打码平台,打码平台则作为中间的任务调度者,将一个个任务调度给标注者(专门做验证码验证的人),完成后将标注结果返回,再带着标注结果去请求数据页面。
标注结果打码平台也会存储一份,下次若遇到相同的验证码则直接返回这次的标注结果。如果验证码平台的验证图片长久不更新,那么就会有被拖库的风险,也就是其所有验证图片都会被标注,这时候就无需人工标注了,直接转变成机器打码的形式。
以上就是验证码破解的大致流程。其实可以看出来,验证码的识别对抗的本质其实是验证码 VS 人工智能。
因此,目前大大小小的验证码厂商都在提升自己的“感知”能力,包括但不仅限于:动态变更前端加密算法、图库变更、字体及效果的变更、图标元素的变更等。
我在推广我们家免费的验证码产品啦(滑动验证码和图片点选验证码!),如果有在自己建站或者开发应用的朋友,可以自行前往注册体验(免费的!): https://user.dingxiang-inc.com/user/register?from=discuz#/
抽奖活动规则:
1.在本帖留言即可参与,以每个用户的 ID 为准,多次留言只算一次;
2.活动礼品:小黄鸭蓝牙音箱 X1+U 盘 X2+顶象帆布包 X3 ;
3.活动时间截止到 2023 年 2 月 20 日 10:00 ,在此时间之后的留言不再参与抽奖活动,当天上午公布得奖小伙伴;
4.抽奖方式:按最后回复总楼层数(向上取整)的 8%(帆布包)、28%( U 盘)、48%( U 盘)、68%(蓝牙音箱)、88%(帆布包)、98%(帆布包)抽取;
5.奖品全国包邮;
6.本次活动的最终解释权归顶象所有。
第一次发布活动,如有不足,请多指教!
1
yrk20212021 2023-02-14 15:10:29 +08:00
体验了下,不错
|
2
kwkwkkk 2023-02-14 15:14:16 +08:00
那问题来了。。。用那种方式破解你家的验证码最简单?
|
3
vipqiudaoyu 2023-02-14 15:54:36 +08:00
加油 我要中奖
|
4
lslqtz 2023-02-14 16:03:07 +08:00
那问题来了, 好像没有说你家的验证码有什么优势.
|
5
Thecosy 2023-02-14 17:20:11 +08:00
嗯,好,不错
|
6
alihbaba 2023-02-14 20:52:48 +08:00
中奖中奖
|
7
Dio22333 2023-02-14 22:12:00 +08:00 via Android
我我
|