概论
介绍
其英文是 Completely Automated Public TuringTest to Tell Computers and Humans Apart ,简称 CAPTCHA
在互联网不断发展的当今自动化程序对互联网的攻击持续增加攻击破解对网络安全的威胁也不断加大。对网络服务器来说,如果不能有效地验证非法操作,并且拒绝不合理操作,就可能会导致网站资源被非法程序严重损耗,降低系统的性能直至系统崩溃。为了保证用户提交的不是非法操作请求现有的网站都已经普遍使用了验证码验证技术,用以防止网络上的恶意攻击,提高网站的安全性和抗攻击的能力。
验证码技术主要被用在网站的注册页面、登陆页面和发帖验证页面,通过有效的验证用户是否为合法用户,从而抵御非法计算机程序的自动登陆、注册以及暴力攻击
分类
- 基于数字和字母的文本验证码
- 基于视频内容的验证码
- 通过向视频中录入验证码,字母随机组合,然后再向用户展示这类验证码,进而达到验证的效果
- 将图灵测试题目摄录如视频当中,通过对视频展示,用户观看视频内容,自行得出需要填写的答案
- 基于声音的验证码
- 基于数学算术的验证码
- 基于中文汉字的验证码
验证码识别的一般步骤


彩色去噪算法
当处理像素点X,Y时,计算该像素点及其周围的8 个像素点的平均R, G, B值。然后分别计算这9个点到平均值的欧氏距离。再从算的9个欧氏距离值中选出最小的。例如该最小距离所对应的像素点坐标为X’,Y’,那么用X’,Y’的RGB 值替代X,Y的RGB值,此时像素点X,Y完成彩色去噪运算,跳到下一个像素点重复上述步骤,直到遍历验证码整图的所有像素点。
验证码的采集
所采用的验证码图片来源于kaggle_captcha-dataset
代码nodejs实现请参考captchaidentify
代码csharp实现请参考captchaidentify2