时间回到2000年初,刚刚接触互联网的初代网民,也许还记得那时最头疼的事——
总是删不完的垃圾邮件,随意弹出的攻击页面,和永远快人一步、利用插件抢票的黄牛。
刚刚兴起的互联网,无异于一条自行车都能上的高速公路,有人办正事,就有人制造代码程序故意捣乱。
当封号的速度赶不上恶意注册的速度,人工审核追不上重复运行的代码时,给上网冲浪设置门槛便迫在眉睫。
2003年,为解决这个问题,来自卡内基梅隆大学的一群博士创造了CAPTCHA,是一个全自动区分计算机和人类的公开图灵测试。
所谓图灵测试,就是人类提问计算机解答,用来判定计算机能否在智力行为上表现得和人无法区分。
想要分辨电脑前是否为真人,只需要把这个测试反过来——由机器提问人类解答,“验证码”应运而生。

最早的验证码,于1997年设计公布并申请了专利
早期的验证码,由被变形、扭曲、翻转的字符串或者数字组成。
机器人看不懂,人类用肉眼却可以轻松辨认。
有了这道简单的门槛,垃圾邮件、黄牛插件和恶意攻击的爬虫程序,就被轻松挡在了网页外。
然而好景不长,这样的验证码很快就被程序破解了。
再复杂的程序也离不开26个英文字母、10个阿拉伯数字的组合,只要利用程序算法将字符与背景分离,久而久之,资料库便学会了识别。
与此同时,一套由庞大中文字符库组成的中文验证码,就这样出现了。
辨认相似结构的汉字、给汉字标拼音,以及按顺序点击打乱的成语,成了中文验证码的常规操作。

发展到最后,图文并用、阅读理解纷纷上阵,验证码的形式越来越多样,计算机的识别技术也越来越强。

升级版数字验证码
验证码的迭代,变成了一场“道高一尺,魔高一丈”的较量。
它既是程序员们智力的角逐,也是一场人机对抗学习。
时至今日,形式各样的验证码已经在互联网的考验洗礼中,按照功能分成了不同阵营。
当你想上个新闻网站,迎接你的大概率是点击型验证码。
算法会根据鼠标的运营轨迹判断你是否是真人,同时还能帮助验证码系统进化。
“我不是机器人”
当你登录私人账号时,滑动型验证码一边通过拖动速度判别真人,一边还会送上贴心鼓励:
“恭喜你用时1.6秒,超过全国90%的人。”
三、验证码能消失吗?
面对越来越变态的验证码,不少人质疑:
“为了保护我银行卡里的五毛钱,设置八层验证真的值得吗?”
答案是,值得。
所谓安全验证,判断的不仅仅是用户注册时设置的用户名、密码等,还要判断是不是真人、是不是本人操作。
目前为止,乖乖输入验证码,依然是区别人和计算机最有效率的方法。
鲜有人知的是,验证码的存在除了保护信息安全,人类还能利用它干点正事儿。
发明初代验证码的天才Luis von Ahn,曾在2004年带领团队上线了一个叫reCAPTCHA的验证码系统。
他们把计算机难以识别的旧书籍扫描成电子版,将其中斑驳的文字对接到验证码上让人们来识别。
靠着这个巧妙的方法,系统每年能成功数字化230多万本旧书。
图源:世界复杂性科学研究院
当人们以为这便是验证码的光明结局时,有人本着魔法打败魔法的原则,推出了破解验证码的插件。
只要遇到图形验证型验证码,小插件不仅会自动帮用户点击,甚至还会利用深度学习训练模型提高自己的精准度——
用的人越多,小插件就越精准。

你不仁就不要怪我不义/图源:chrome应用商店
围观了这一波腥风血雨的“验证码之战”后,有人感叹:
“验证码拿用户训练机器人,用户用机器人绕过验证码,最后机器人学到了最多。”
验证码难度的提升,反映的是人工智能技术的进步。
当机器越来越“聪明”,人类面临的挑战便越来越多,再复杂的验证码,也会有走投无路的一天,需要寻求新的改革。
但作为只想要网上轻松冲浪的用户,我们只求验证码,别再让我找出图片中微笑的狗、云做的马了。
作者:白小哲;公众号:网易公开课(ID:open163)