小宇宙百科

验证码:区别计算机与人类的测试

为什么这么多网页要输入验证码?验证码(CAPTCHA)是“Completely Automated Public Turing test to tell Computers and Humans Apart”(全自动区分计算机和人类的图灵测试)的缩写。由于计算机无法解答CAPTCHA的问题,所以回答出问题的用户就可以被认为是人类。

来自2012/10/03/  小宇宙百科12278

沈迦勒/编  雨璇/配图

【Q】诗经问:为什么这么多网页要输入验证码?原理是什么?

【A】沈迦勒答:我们俗称的验证码,正式名称为“全自动区分计算机和人类的图灵测试”(Completely Automated Public Turing test to tell Computers and Humans Apart,CAPTCHA)。顾名思义,它是一种区分用户是计算机还是人类的全自动程序,计算机生成这些测试很容易,但是回答它很难,所以回答出问题的用户就可以被认为是人类。常用验证码是让用户输入图片上显示的文字。为了避免被计算机光学识别,文字验证码一般是正常文字经过扭曲变形、添加无意义的点和线之后产生的。验证码目前广泛用于留言板、投票页、登陆页和下载页,用于防止有人利用程序大量张贴广告、刷票、恶意尝试登陆和盗链。然而,由于传统的图片验证码基于视觉识别,不适用于视觉障碍人士,因此有些开发人员也使用添加噪声的音频来作为验证码。

现在市面上有许多验证码改进了体验,包括简单的数学题(例如3+?=5)和常识类问题(天空的颜色是?),但由于无法自动生成,这些验证码容易被穷举攻击。笔者也曾经见过一些论坛要求用户在验证码中求解一个复杂的环路积分,或者给出一段C语言程序的运行结果,这就比较另类了。对个人来说,辨认文字所花的几秒时间微不足道,然而网民每天要输入大量的验证码,如果将这些力量利用起来,那便能完成难以想象的浩大工程。卡耐基梅隆大学的研究小组设计了一个名叫reCAPTCHA的强大系统,将海量的古老书籍和手稿通过验证码的方式转化为电子文本,以方便电脑储存和查询。为了提高用户辨识文字的正确率,用户往往被要求辨认两个单词,其中一个的答案系统已经知晓。这样一来,正确辨认出有答案的那个单词的用户,很有可能也会正确辨认另一个单词。有时候,系统会将一个单词提交给不同的用户,如果得到的是相同的答案,那这个答案便可认为是正确的。许多人气极高的网站,如Facebook、Twitter和StumbleUpon等,都采用了reCAPTCHA,这个系统每天都可以处理大约一百万个单词。沈迦勒/编·图灵的苹果


【恭喜】该词条入选2012年度十佳词条提名 【我要去投票】戳→

编者 沈迦勒

代码如诗

文章评论 (4)

  • 吴悠 2012-10-07 21:59:30
    @雨璇 这文的特色图像换一张吧,尽量 286*182左右,起码是这个比例的。
  • 雨璇 2012-10-07 23:14:31
    这个好点儿没?

    引用 @吴悠 的评论:

    @雨璇 这文的特色图像换一张吧,尽量 286*182左右,起码是这个比例的。

  • lyc0516 2013-01-25 15:15:05
    回复@沈迦勒: 那有两个单词的那种验证码其实只要输对一个就能验证通过了咯?

    引用 @雨璇 的评论:

    这个好点儿没?

  • 沈迦勒 2013-01-25 15:50:20
    回复@lyc0516: 理论上用这个系统的验证码就是这样的〜
留下您的评论

还没有登录?请先 登录