作者:caocao(網絡隱士),http://www.caocao.name/,http://www.caocao.mobi/
轉載請注明來源:http://www.Javaeye.com/topic/159922
顧名思義,隱士這裡想探討一下驗證碼識別程序的設計,至於如何使用這樣的程序則不在技術討論的范圍內。
先來看一下隱士這個.Net程序的效果。這樣的驗證碼圖片在很多網站都有,看上去識別效果還不錯。
下面介紹一下該算法的特點:
1、只能識別已知字體、字號,對字母沒什麼要求,英文字母、數字、中文字都可以。
2、只能識別不扭曲、鏡像、旋轉的字。
3、對噪點、干擾線不太敏感。
由上面的特點可知,這算法其實是很脆弱的,只要驗證碼生成程序稍微做一點點旋轉就可以令其失效。那麼該算法做了些什麼呢?
這算法只做了一件事情,就是按照已知字符串的圖像去驗證碼圖像裡掃描,掃到匹配的就成了,當然算法內部會有一些小調整以降低誤認率。僅僅這點就足矣識別大量網站的驗證碼了。效果圖裡的驗證碼是由Discuz! 5.5產生的一種,CSDN現階段的驗證碼圖片一樣可以用這個算法來識別。看官如有興趣,請聯系隱士共同探討。