摘要: 在搞验证码识别的时候需要比较字符代码的相似度用到“编辑距离算法”,关于原理和C#实现做个记录。 据百度百科介绍: 编辑距离,又称Levenshtein距离(也叫做Edit Distance),是指两个字串之间,由一个转成另一个所需的最少编辑操作次数,如果它们的距离越大,说明它们越是不同。许可的编辑操作包括将一个字符替换成另一个字符,插入一个字符,删除一个字符。 例如将kitten一字转成sit... 阅读全文
posted @ 2011-11-25 15:40 ZYB 阅读(35074) 评论(20) 推荐(7) 编辑
摘要: 之前我在<<C#简单数字验证码解析>>一文中介绍了用C#识别简单不变形数字验证码,但是对于识别变形的 或生成位置变化比较频繁的 验证码的准确率却不高。下面介绍一个开源的OCR引擎Tesseract2。值得庆幸的是虽然是开源的但是它的识别率较高,并不比其他引擎差劲。网上介绍Tessnet2也是当时时间排名第三的识别引擎,只是后来慢慢不维护了,目前是Google在维护,大家都知道Google 在搞电子图书馆,每天都有不同类目的书被扫描成电子版。所以有G老大维护,识别率差不到哪里去。呵呵。。别鄙视我。。。Tessnet2 是用vc ++ 开发的,其中是生成Tessnet2.d 阅读全文
posted @ 2011-11-25 12:46 ZYB 阅读(46097) 评论(24) 推荐(7) 编辑
摘要: 这几天都在研究验证码解析,写了一个DEMO,对于纯数字且生成位置变化频率较低的图片识别效果还算满意,准确率在80%以上,更高级别的验证码还有待研究。 CSharp简单数字验证码解析.rar 具体实现思路:以4位数字的验证码为例 1、人工将验证码的4位数字每位对应的代码存入数据库中,每位存入0-9对应的代码,每个数可以多存这样可以提高识别率; 2、获取验证码以后,对其进行去背景、灰度处理、去噪点处... 阅读全文
posted @ 2011-11-25 11:41 ZYB 阅读(11541) 评论(10) 推荐(3) 编辑
摘要: 原文:http://security.ctocio.com.cn/securitycomment/290/8182290.shtml摘录一部分,其余的请看原文五、高级验证码的破解分析 时间关系,我简单介绍如何利用图像处理和模式识别技术,自动识别比较高级的验证码。 (以风头正劲的Google为例) 1)至少从目前的AI的发展程度看,没有简单的做法能自动处理各种不同的验证码,即使能力很强,那么系统自然也十分复杂强大。所以,要想在很简单的算法实现比较高级的验证码破解,必须分析不同验证码算法的特点: 作为一般的图像处理和计算机视觉,会考虑色彩,纹理,形状等直接的特征,同时也考虑直方图,灰度等统计... 阅读全文
posted @ 2011-11-25 11:25 ZYB 阅读(1781) 评论(0) 推荐(0) 编辑