《如何破解字符验证码.ppt》由会员分享,可在线阅读,更多相关《如何破解字符验证码.ppt(12页珍藏版)》请在金锄头文库上搜索。
1、8/12/2024对验证码的介绍对验证码的介绍字符验证码字符验证码如何破解字符验证码如何破解字符验证码小组总结小组总结8/12/20248/12/2024验证码的英文CAPTCHA 这个词最早是在2000年由卡内基梅隆大学的Luis von Ahn等学者所提出的。CAPTCHA 是“Completely Automated Public Turing test to tell Computers and Humans Apart”(全自动区分计算机和人类的图灵测试)的缩写,是一种区分用户是计算机和人的公共全自动程序。这个问题可以由计算机生成并评判,但是必须只有人类才能解答。由于计算机无法解答C
2、APTCHA的问题,所以回答出问题的用户就可以被认为是人类。起起源源(1)由4个随机数字组成的最原始验证码:验证作用几乎为零。(2)GIF动画验证码 : 防垃圾注入可以达到100%,有效的同时能增加网站页面的美观效果。(3)手机验证码:通过发送验证码到手机,比较准确验证用户的正确性,是最有效的验证码之一。(4)字符验证码:服务器端随机生成验证码字符串,保存在内存中,并写入图片或者加入干扰线条,将图片连同表单发给客户端。是目前而言最常见的验证码。8/12/2024字符验证码的工作流程字符验证码的工作流程(1)、服务器端随机生成验证码字符串,保存在内存中,并写入图片或者加入干扰线条,将图片连同表单
3、发给客户端。 (2)、客户端输入验证码,并提交给表单,服务器端获取客户提交的验证码,和前面产生的的随机数字相比较;如果相同,则继续进行表单所描述的操作(如登录、注册等);如果不同,直接将错误信息返回给客户端。避免程序的继续运行以及访问数据库。8/12/2024如何破解字符验证码如何破解字符验证码 1、去噪去噪 (1)由于其 背景色 的亮度与文字或者数字的亮度差别较大,这样我们就可以通过 设定亮度域值的方法来对它进行二值化处理,即将图像上的像素点的灰度值设置为0或255,也就是将整个图像呈现出明显的只有黑和白的视觉效果。 (2)对于干扰线的去除,我们通过对水平方向长度超过图片二分之一的线直接去除
4、,因为图片文字本身宽度不可能超过二分之一的图片大小。8/12/2024(3)先在x轴方向进行分割:对x轴上每一点,统计y坐标方向上黑点数目。当黑点数目少于设定的域值时候,认为是字符间的空白区,而黑点数目大于设定的阈值时则认为是字符区。(4)有时存在字符相连的情况,为避免两个相连的字符分割失败,对字符的最大宽度和最小宽度设定阈值 : 当宽度大于最大宽度时候,即认为是两个字符,需要将分割得到的字符继续分割;如果分割得到的字符宽度小于设定的最小宽度,则需要进行合并邻近的两个字符进行分割。(5)利用同样的方法可以进行y轴方向上的分割。(6)由于验证码文字的随机性,对分割得到的单个字符进行进一步的边框确
5、定。通过对水平和垂直方向扫描,确定出单个字符的边框。8/12/20242、将分割出的字符与模版匹配,判别字符类型将分割出的字符与模版匹配,判别字符类型(1)模版库的建立:从网络上采集一系列验证码的样本,建立验证码字符样本空间。比如为字母AZ和数字09。对于每一个样本,我们提取特征,建立模版。(2)将得到的图片切割为固定的长度和宽度。先将字符从水平方向进行扫描,则每条扫描线都是由黑点或者白点构成的序列,每条水平扫描线可以用一个向量表示。将向量分类为N种模式,比如模式0表示长的空白段,而模式1代表长的黑点段。模式2表示一段相对长的白点之后跟着一段黑点。以此类推得到自己设计的模式图。8/12/202
6、4(3)用上述的编码方法分别对模版与待识别的字符进行编码,然后计算模版与待识别字符的编码的相似度。把一个字当做一幅图,从上往下一行行扫描,每一行都是由不同长短的黑色横杠组成的,每种横杠对应着模式图中的一个编码。取相似度最高的模版字符为识别的结果。如图所示,数字7的编码为1288886999798/12/20248/12/2024上述破解原理可用OCR(Optical Character Recognition):光学字符识别来实现 1、下载安装Tesseract-OCR引擎2、 使用Tesseract-OCR引擎识别验证码8/12/2024取出所需要读取的验证码图片运行之后可得8/12/2024