K-means算法验证码破解软件设计(2)_毕业论文

毕业论文移动版

毕业论文 > 计算机论文 >

K-means算法验证码破解软件设计(2)


所以,验证码破解软件的破解和开发,能够有效地提高验证码的设计,从而能提高验证码过滤电脑的成功率。
1.1.2 验证码的特点
      本文主要研究的是破解文本验证码。在各大网站中,文本验证码已经在账号注册,电子商务交易,网络投票上得到了广泛的运用。它的设计和产生使大量的垃圾信息以及账号被过滤,净化了网络环境,提高了网站的运行效率。[5]
      文本验证码的功能是提供一个扭曲的图像,要求用户在这混乱的图像中找出并且输入其中的字符。通常的文本验证码为了提高过滤成功率,按照以下两点来进行设计:1)改变图像形状。对生成的字符进行大小的改变,旋转,形状扭曲,字符之间的位置重叠或者粘连(如图1.1);2)在背景处添加噪声干扰,如添加点,线,和小字符。(如图1.2)
Yahoo验证码交通银行验证码
3)结合一些实物图像上的数字,综合起来形成验证码。(
Google验证码
1.1.3 验证码的破解
      随着近年来图像处理技术的发展,图像的字符分割,OCR技术也越来越成熟,许多的商用文本验证码也已经被几乎完美破解。对于一些简单的验证码,用图像像素点标记法分割处理,和垂直水平处理等简单的图像预处理算法就可以完成破解。
      然而,对于文本验证码的安全性,也没有一个标准的评判标准。Yan等人提出验证码可用性评估框架,从用户通过测试的正确率,满意度,反应时间三方面来衡量验证码的三种特性形状、呈现方式和内容。他们得出结论:1)文本验证码对不熟悉其使用语言的外国人比较难; 2)文本长度和颜色会影响到验证码的可靠性和安全性。[6]      文本验证码的破解大概分为两步:1)字符的分割;2)单个字符识别。大多数商业网站上的验证码,都可以用以上两步通过二值化,膨胀,连通量分析,腐蚀等图像预处理技术进行破解。再用形状上下文,模式识别方法等进行匹配,最后得到破解结果。
1.2 本论文所完成的工作及论文安排
      本论文是运用C++编程来设计程序来破解工商银行和建设银行网页验证码。本论文针对了工商银行和交通银行网络验证码进行了破解,并利用Visual C++编写了程序进行了实现。对于工行验证码,主要通过大津法的二值化,标记法团块提取和模板匹配法进行破解。对于交通银行验证码进行K-means颜色聚类方法进行破解。论文的章节安排为:本文第2章详细介绍了验证码的图像处理(验证码图像的二值化,基于标记法的团块提取、噪声过滤,字符倾斜矫正及规格化,字符匹配识别的算法介绍设计及运行实现)。第3章着重介绍了一种基于K-means颜色聚类的算法来进行验证码破解。
实现了如何用K-means颜色聚类来提取出关键字符,从而来实现分割矫正和匹配。最后第4章的结论是对本课题所开展的工作和完成的任务进行总结。
2 基于域值分割的验证码破解方法
2.1 验证码图像的二值化
2.1.1图像二值化介绍
      一幅验证码图像一般包含三类元素:目标物体、背景、噪声。图像的二值化是为了得到只有目标字符和背景的二值图。二值化后,图像中所有的像素点变为255或0。也就是说,一个验证码图像通过处理并二值化后将呈现为需要处理的字符和背景。前景需要处理的字符像素值为255,背景的像素值为0。二值化的方法有很多,大致能归类为两种:全局域值法和局部域值法。[8][16]
      全局域值法是指在二值化中,只使用一个全局域值T的方法。在一张图像当中,根据文本图像的直方图和灰度空间分布,来确定一个域值T。每一个像素点的像素值与这个全局域值比较,像素值大于T,该像素点的值将变为255;若小于T,则为0,从而完成灰度图像到二值图像的转化。全局域值法也分为基于点的域值法和基于区域的域值法。在后期的点标记分割法来分割出目标字符,对二值图的好坏依赖性很大,所以说,选择域值对后期的字符分割起到了决定性的作用。 (责任编辑:qin)