验证码的英文是CAPAHA,是Completely Public Turing Test to Tell Computers and Humans Apart(全自动区分计算机和人类的图灵测试)的简称。该词最早出现于2000年,由美国卡内基梅隆大学的路易斯·冯·安(Luis vonAhn)、曼纽尔·布卢姆(Manuel Blum)、尼古拉斯·霍珀(Nicholas J·Hopper)及IBM的约翰·兰福德(John Langford)提出,是一种区分计算机和真实用户的公共全自动程序。验证码是将一串随机产生的数字、汉字、字母或符号,生成一幅图片,图片里加上一些干扰素,用户可识别其中的验证码信息,并将其输入表单提交网站验证,验证成功后,用户可完成自主注册、登陆,或正常使用其他功能。
目前,验证码广泛应用于各网站、论坛。不少网站为了防止用户利用机器人自动注册、登陆等,都采用了验证码技术。同时,许多论坛为了防止各别用户利用计算程序大肆在论坛上张贴广告或其他垃圾信息,都会在提交留言的位置设置验证码,要求回帖者必须输入图片上所显示的文字、数字、字母,或是完成算术题才可提交留言。此外,一些网络交易系统,如,在线支付也为避免计算机程序以暴力法大量尝试交易设有验证码机制。
验证码的作用主要体现在以下3个方面。
第一,防止不法用户利用计算机程序对网站、论坛进行批量注册,进行大规模匿名重复发帖和回帖,或发布大量垃圾信息。
第二,防止密码被暴力破解。在浏览器中,如需要输入用户名和密码才能登录、启用某项服务时,该用户名一旦被他人获取,就可用特定暴力破解方式进行不断地登录尝试。因此,在登录时,准确输入随机产生的验证码字符,可使他人猜解密码不能轻易实现。
第三,防止不法用户对网站的恶意攻击。有些网站常会遭到合法用户的恶意攻击,常见的攻击手段就是身份欺骗。攻击者利用客户端漏洞,或通过木马在页面里置入脚本,当用户登录后,这些脚本就偷偷利用“http-post”向服务器发送请求,提交垃圾数据,窃取数据提交到攻击者操纵的服务器,或密集执行消耗服务器资源的操作,降低网站性能,甚至使网站崩溃。在关键部分使用验证码可以在一定程度上防止合法客户被攻击后,对服务器造成较大伤害。