为什么很多网站的验证码都设置得肉眼都很难识别?
首先来谈谈验证码的机制,验证码作为一种人机识别手段,其终极目的,就是区分正常人和机器的操作。而对于没有验证码的场景,比如用户登陆,则机器可以同时、大批量的发起请求,一来系统可能扛不住,二来机器可以不断变换密码来尝试破解用户的密码,实现盗号。
虽然,图形类的验证码都是要求输入字符和数字,但看似只是简单的几个输入操作,而实际是人非常聪明,在人已知的知识体系下,能快速识别图片中的文字。
而如果要机器来完成这个过程,则必须要让机器能识别出图片中的内容,亦即机器必须要有OCR的本领,这个本领是需要算法支持的,就和人首先要识字一样,否则人也打不出图形验证码中的内容。
然而,现在已有的OCR技术,识别图形验证码中的内容已经完全足够,所以,图形验证码非常容易破解。为了应付这种情况,很多网站加大验证码识别难度,复杂的验证码甚至让用户都很难识别了,这种方式劣势十分明显,糟糕的用户体验最终会让网站流失用户,这便是为什么有人吐槽12306网站的验证码的原因了。
幸运的是现在市面上也出现了多种多样的智能验证码,这种验证码不管是从安全性、还是用户体验上,比图形验证码都要好很多。常见的有:滑动拼图验证码、图中点选验证码、智能无感知等,其背后的原理除了对滑块起始位置的认知、图中文字及其顺序的认知外,实际还会基于在页面上的操作行为、操作轨迹,以及当前设备的指纹、所运行的环境等维度进行大数据分析,并利用有监督和无监督的机器学习手段,不断升级和优化模型,不断提供破解的成本,保证人机识别的效果。