◆胖瓜
让人又爱又恨的验证码
◆胖瓜
现在的验证码多种多样,包括文字、字母、图案和问题等,有的相当复杂,让人看了忍不住发牢骚:万恶的验证码!
虽然验证码让一些人恨之入骨,但是没了它,我们可能会被黑客攻击哦。
当验证码尚未出现时,黑客就相当猖狂。他们编写了一种能重复编写信息的程序,伪装成人类用户,肆无忌惮地朝网上传递大量无意义的“僵尸”信息,导致垃圾邮件、垃圾广告、垃圾评论到处都是,论坛被灌水,有用的信息被淹没,很多网站无法正常运营。
另外,还有数不尽的程序机器人不断尝试破解密码、恶意刷票,从中非法谋利。
其中受影响最大的是电子邮件提供商。他们的用户每天收到数以百计的垃圾邮件,严重影响了正常工作,更要命的是,这些垃圾邮件都是他们的免费邮箱发出的。
有什么方法可以约束程序机器人呢?
当时最有实力的邮件提供商雅虎公司决定下狠劲改善这个问题。公司的负责人联系了卡内基梅隆大学的学生路易斯·冯·安。
路易斯这个计算机天才认真研究了程序机器人的“工作手法”后,给出了一个独特的方案:在用户进行操作前,将试图伪装成人类的那些机器人鉴定出来并揪出来。
如何将人类和机器人区别开来?或者说,有什么是人类能够轻易做到,而机器做不到的呢?
数学题?机器做得比人类出色多了;写一篇洋洋洒洒的保证书保证“我是人类”?机器绝对写得又快又好;画一幅画?拜托,谁有空每次在论坛发一次帖就画一幅画?而且说真的,机器画画也绝对比人类强……
路易斯发现,对于镶嵌在图片中、被扭曲过、污染过的文字,人类可以用肉眼轻易地识别出来,而机器不能。他在导师曼纽尔·布鲁姆的帮助下很快设计了一个程序,这个程序先会产生一个随机的字符串,如smwm,然后对这串字符进行随机的扭曲、重叠、污染,再显示给要进行操作的用户。只要能识别变形了的字符串,就是人类。
这个设计方案后来被命名为“CAPTCHA”,意思是全自动区分计算机和人类的图灵测试,中文译名就是验证码。(节选自蝌蚪五线谱)