<?xml version="1.0" encoding="utf-8"?>
<!DOCTYPE wml PUBLIC "-//WAPFORUM//DTD WML 1.1//EN" "http://www.wapforum.org/DTD/wml_1.1.xml">
<wml>
<head><meta forua="true" http-equiv="Cache-Control" content="max-age=0" /></head>
<card title="PHP如何对网站验证码进行破解？（原理和识别技术）" id="card1">
<p> 游客</p><p>
标题:PHP如何对网站验证码进行破解？（原理和识别技术）<br/>
正文:<br/>
验证码的功能一般是防止使用程序恶意注册、暴力破解或批量发帖而设置的。所谓验证码，就是将一串随机产生的数字或符号，生成一幅图片，图片里加上一些干扰象素（防止OCR），由用户肉眼识别其中的验证码信息，输入表单提交网站验证，验证成功后才能使用某项功能。学习验证码的破解/识别技术，不仅可以知道验证码的原理，而且可以让你知道怎样才能防止验证码被破解。最常见的验证码主要有以下几种：1、四位数字，随机的一数字字符串，最原始的验证码，验证作用几乎为零。2、随机数字图片验证码。图片上的字符比较中规中矩，有的可能加入一些随机干扰素，还有一些是随机字符颜色，验证作用比上一个好。没有基本图形图像学知识的人，不可破！3、各种图片格式的随机数字+随机大写英文字母+随机干扰像素+随机位置。4、汉字是注册目前最新的验证码，随机生成，打起来更难了,影响用户体验，所以，一般应用的比较少。为简单起见，破解说明主要针对是第2种类型的，先来看看网上常见的这种验证码的图片：    第一种，最容易，图片背景和数字都使用相同的颜色，字符规整，字符位置统一。    第二种，看似不容易，其实仔细研究会发现其规则，背景色和干扰素无论怎么变化，验证字符字符规整，颜色相同，所以排除干扰素非常容易，只要是非字符色素全部排除即可。    第三种，看似更复杂，处理上面提到背景色和干扰素一直变化外，验证字符的颜色也在变化，并且各个字符的颜色也各不相同。    第四种，除了第三个图片上提到的特征外，又在文字上加了两条直线干扰率，看似困难其实，很容易去掉。验证码识别一般分为以下几个步骤：1、取出字模 识别验证码，毕竟不是专业的OCR识别，并且，由于各个网站的验证码各不相同，所以，最常见的方法就是就是建立这个验证码的特征码库。去字模时，我们需要多下载几张图片，使这些图片中，包括所有的字符，我们这里的字母只有图片，所以，只要收集到包括0-9的图片即可。2、二值化 二值化就是把图片上的验证数字上每个象素用一种数字表示1，其他部分用0表示。这样就可以计算出每个数字字模，记录下这些字模来，当作key即可。3、计算特征 把要识别的图片，进行二值化，得到图片特征。4、对照样本 把步骤3种的图片特征码和验证码的字模进行对比，得到验证图片上的数字。使用目前这种方法，对验证码的识别基本上可以做到100%。通过以上步骤，您可能说了，并没有发现如何取出干扰素<br/><a href="http://camnpr.com/wap.asp?mode=WAP&amp;act=View&amp;id=2214&amp;Page=1">[&lt;&lt;]</a><a href="http://camnpr.com/wap.asp?mode=WAP&amp;act=View&amp;id=2214&amp;Page=1">[[1]]</a><a href="http://camnpr.com/wap.asp?mode=WAP&amp;act=View&amp;id=2214&amp;Page=2">[2]</a><a href="http://camnpr.com/wap.asp?mode=WAP&amp;act=View&amp;id=2214&amp;Page=3">[3]</a><a href="http://camnpr.com/wap.asp?mode=WAP&amp;act=View&amp;id=2214&amp;Page=4">[&gt;&gt;]</a><br/>
<br/>
<a href="wap.asp?act=Com&amp;id=2214">查看评论(0)</a><br/>
<a href="wap.asp?act=AddCom&amp;inpId=2214">发表评论</a><br/><br/>

<br/>

<br/>
<a href="http://camnpr.com/wap.asp">首页</a>
</p>
</card>
</wml>