编码机

滑块验证码和图形验证码破解难度如何

发布时间:2023/7/16 13:00:50   
白癜风哪家医院治疗好 https://wapyyk.39.net/bj/zhuanke/89ac7.html

相信对于验证码大家都很熟悉了,它的功能就是为了防止机器人暴力破解,所以图片上会有很多干扰因素。之前有对于各种验证码进行过研究,图形和滑动验证码以及一些较为复杂的验证码。那今天我们就先来讨论下关于图像验证码识别的一些知识吧。

先来看看日常生活中我们常见的验证码都有哪些?

1噪点,就是验证码图片种有很多的小点点,而且有些噪点的颜色各异;

2字符的倾斜,验证码会不同程度的旋转或者倾斜,加大识别时候的难度。

3字符的粘连,这类型的大多数破解思路就是将图片上的验证码分割为一个个单独的字符然后进行识别,因此如果验证码中的字符粘连程度很高的时候,会很影响正确率的。而且有的两个字符由于粘连有很大的重叠部分,因此想要分割成单个的字符,还是有比较大的难度。

4干扰线,有的验证码会用一条线从左到右贯穿整个验证码字符,目的是使得验证码的字符成为一个整体,能有效防止别人通过像素将每个字符孤立出来。

这篇文章暂且分析这四种简单的验证码的识别过程:

验证码识别的主要分为两步:图片预处理和图像识别。具体步骤如下:

1图像灰度化、二值化,这一步方便后期处理,将图片中每个点的像素值只设为两种,要么为要么为0,一种表示信息元素,一种表示背景。但是如果验证码是彩色的,而干扰因素比如噪点和干扰线可以通过颜色过滤,那么在灰度化、二值化之前还是需要先过滤掉干扰信息,具体情况具体分析,没有一个固定的顺序;

2图像降噪点,去除干扰线。主要通过一些滤波算法、降噪算法将验证码图片的干扰因素去掉;

3接下来就是字符分割,将图片上的字符分为单个的字符;

4字符归一化,将被旋转倾斜的字符恢复为正常的角度,并且将单个字符的图片经过缩放归一位固定大小;

5特征值提取,将归一后的字符图片,按照一定的算法,得到一组若干个特征值;

6训练,将一定规模的标记号的字符经过图片预处理后得到的特征值与其对应的字符内容,选择特定算法进行训练,得到训练模板;

7测试,再取若干分类好的数据,得到特征值然后用相关算法进行预测,得到的字符与自身的字符进行比对,得到准确率。

接下来继续说说关于滑动验证码的一些破解方法。

特征值提取,将归一后的字符图片,按照一定的算法,得到一组若干个特征值;

6训练,将一定规模的标记号的字符经过图片预处理后得到的特征值与其对应的字符内容,选择特定算法进行训练,得到训练模板。

Python

那么关于滑动验证码一般都有哪些方法呢?这一个稍微比较有难度。

1系统层工具的使用

就是第三方工具通过系统层api进行各类操作,这类工具基本完全模拟人的行为,无法通过js指纹收集直接检测其是否为工具。sikuli,相信有自动化测试经验的人知道,想了解更多可以自己百度搜索。

2seleniumwebdriver

应该不陌生吧?这个工具的作用是驱动浏览器工作,并向浏览器嵌入代码从而实现对浏览器的操控。功能强大到你想不到。

3图像匹配技术,这个涉及的知识点较多,包括

a屏幕截图、使用原生代码对当前窗口截图;

b图像识别,通过验证码图像与截图中图像相似度匹配找到验证码所在位置;

c找到验证码在浏览器中的实际位置

d使用代码api实现拖动。

4逆向前端js

这个方法说真的还没有掌握,后续有机会讲讲。

好吧,上述讲了一部分,其实现在的验证码技术在不断的更新,攻与防技术都是在对抗中不断升级的,现如今机器学习检测+图像识别+逻辑的验证码会得到更广泛的应用,但依然是有方法被识别的。



转载请注明:http://www.aideyishus.com/lkzp/5251.html
------分隔线----------------------------