作者:caocao(网络隐士),
http://www.caocao.name/,
http://www.caocao.mobi/
转载请注明来源: http://www.iteye.com/topic/159922
顾名思义,隐士这里想探讨一下验证码识别程序的设计,至于如何使用这样的程序则不在技术讨论的范围内。
先来看一下隐士这个.net程序的效果。这样的验证码图片在很多网站都有,看上去识别效果还不错。
下面介绍一下该算法的特点:
1、只能识别已知字体、字号,对字母没什么要求,英文字母、数字、中文字都可以。
2、只能识别不扭曲、镜像、旋转的字。
3、对噪点、干扰线不太敏感。
由上面的特点可知,这算法其实是很脆弱的,只要验证码生成程序稍微做一点点旋转就可以令其失效。那么该算法做了些什么呢?
这算法只做了一件事情,就是按照已知字符串的图像去验证码图像里扫描,扫到匹配的就成了,当然算法内部会有一些小调整以降低误认率。仅仅这点就足矣识别大量网站的验证码了。效果图里的验证码是由Discuz! 5.5产生的一种,CSDN现阶段的验证码图片一样可以用这个算法来识别。看官如有兴趣,请联系隐士共同探讨。
转载请注明来源: http://www.iteye.com/topic/159922
顾名思义,隐士这里想探讨一下验证码识别程序的设计,至于如何使用这样的程序则不在技术讨论的范围内。
先来看一下隐士这个.net程序的效果。这样的验证码图片在很多网站都有,看上去识别效果还不错。
![](https://p-blog.csdn.net/images/p_blog_csdn_net/nethermit/271431/o_coderecognizer01.gif)
下面介绍一下该算法的特点:
1、只能识别已知字体、字号,对字母没什么要求,英文字母、数字、中文字都可以。
2、只能识别不扭曲、镜像、旋转的字。
3、对噪点、干扰线不太敏感。
由上面的特点可知,这算法其实是很脆弱的,只要验证码生成程序稍微做一点点旋转就可以令其失效。那么该算法做了些什么呢?
这算法只做了一件事情,就是按照已知字符串的图像去验证码图像里扫描,扫到匹配的就成了,当然算法内部会有一些小调整以降低误认率。仅仅这点就足矣识别大量网站的验证码了。效果图里的验证码是由Discuz! 5.5产生的一种,CSDN现阶段的验证码图片一样可以用这个算法来识别。看官如有兴趣,请联系隐士共同探讨。