俗话说:没有经历过春运的人,不足以谈论人生。
俗话还说:没有败给过12306验证码的人…
一定使用了抢票外挂
每年春运,不仅是一场对肉体与精神的双重考验,自打有了12306,回家的竞争又增加了一道“智力测验”。
从刘翔里找出王自如:
从老公里选出一个最帅的:
从拼多多里选出能进五环的一个:
总之,德智体美发展不均衡的人,是不配拥有一张回家火车票的。
面对五花八门、歪门邪道的验证码,不知道你有没有经历过这样的灵魂拷问:为什么现在的验证码越来越变态了?
初代验证码:字母+数字的简易模式
验证码大家都不陌生,它的本意,是为了屏蔽恶意机器人和脚本程序,确认发出网络请求的是真人,从而制造一个公平、干净、安全的网络空间。
所以,往往在你登录点评网站,频繁刷新淘宝,或者参与秒杀活动时,网页上都会弹出形式各异的验证码,以证明你是人,而非机器,或者键盘上打滚的主子。
12306用的这套图形验证码基本算作第二代验证码系统,可以类比Google的reCaptcha。
reCaptcha全名Completely Automated Public Turing test to tell Computers and Humans Apart(全自动区分计算机和人类的图灵测试),是图灵测试的一种反向应用。
不过,验证码诞生之初,它的形式远非如此复杂,最多只是一行扭曲的数字和字母。
当时,作为全球最大的免费邮箱提供商,雅虎饱受垃圾邮件的困扰,为了阻止这些有组织的攻击,人机辨识成为了雅虎亟待解决的问题。
一位21岁的卡耐基梅隆大学计算机学生想出了个点子,路易斯·冯·安(Luis von Ahn),也就是现在公认的验证码之父。
小哥现在已经是教授了
小哥的思路是这样的:先让计算机随机生成一个字符串,然后用程序对其进行随机的污染、扭曲,程度要既保证人类能够识别,又对机器构成一定难度。
这些歪歪扭扭的第一代验证码,很快就被各大互联网公司采纳,当时,全球互联网每天要使用近2亿个验证码,按每个花费10秒算,全球网民每天“浪费”在填验证码上的时间就有55万个小时。
与其将宝贵的时间白白消耗,能不能用它来创造些价值呢?
在做验证码之前,Luis曾开发过一个游戏,玩家的任务,就是对着图片“看图说话”,对同一张图片描述相似两个玩家即可匹配成功,获得一定的分值奖励。
这个程序顶着游戏的幌子,“骗”来了大量玩家甘当人工智能背后的“人工”,数据标注分文未花,还让大家玩得不亦乐乎。
这种双赢的“套路”给了Luis灵感,只要复制粘贴此前的成功经验,他就能将验证码变成一个让全球网友给AI免费打工的途径。
说干就干。“数字化一切”是当时的共识,而其中最繁重的任务,就是人类数千年来留下的海量纸质书籍。
人工录入是不可能的,录到世界末日也录不完哪怕百分之一的书籍,而OCR技术(光学字符识别)的效率虽然更高,但结果却十分感人…
这道难题用验证码怎么破?举个例子,比如,你想把50年前发行的一本《红楼梦》做成电子版…
这个时候,只要将书籍整本扫描下来,以词语为单位进行切割(比如“葬花”),然后以验证码的形式发给用户,之后就坐等一无所知的用户填写验证码结果即可。
如果不放心,还可以加上一重验证——在这个任务前再加一个已知答案的词(比如“黛玉”),将两个词语一起发给用户。如果用户答对了前半段,那么大概率下,后半段也是正确的。
简而言之,在你填的reCaptcha验证码中,只有50%用于人机验证,剩下的一半时间,就是纯粹在为Google的AI打工了。
而据统计,依靠这枚小小的验证码,reCaptcha系统每天就能认识近2亿个字符,为人类文明做出了巨大的贡献。
二代目验证码:沙雕辈出
2009年,Google发现了reCaptcha巨大的市场空间,以2780万美元的价格将其收入麾下,并且基于同样的套路,给验证码添加了许多新形式。比如,
认门牌号
给数据库做分类
还有语音识别数字
至此,故事的走向还在可控范围内,人们多花5秒时间给Google打个工,以此换来更丰富的数字化资源,和更安全的网络环境。
这本来是个皆大欢喜的结尾,但迅速进化的AI,却瞬间打破了这种平衡。
2014年,谷歌搞了个事情,他们找来一个机器算法与人类来回答同一道验证码,结果去出乎所有人的预料,机器以99.8%的正确率完胜人类的33.3%。又过了2年,人们发现语音验证的阵地也被机器攻占了。
这意味着,用来区分辨识人类和机器的验证码系统已经彻底失效了,升级reCaptcha系统已是当务之急。
于是,验证码的题越出越奇葩,越出越沙雕,考常识文化、考儿歌童谣,更有甚者,要求用户识别一幅2000多年前的洞穴壁画…
这些题目没难倒机器人,反而先“净化”掉了一批愚蠢的人类。
但也不能全怪人类太蠢,问题出现在人类太过多元的文化上,不同的种族、语言、经历、宗教都成了障碍。毕竟,一个合格的验证码,需要具有极高的普适性,能够跨越任何文化背景,只需诉诸直觉便可解决,无需训练与思考。
人类文明浩如烟海,但能满足上述这些要求的,也就只剩下音乐、图片、表情……不过这些领地早已被机器占领。
等等,还有一个…游戏!
想想一下,面对一幅残缺的拼图,你会做什么?即便不是强迫症,相信大部分人的第一反应,也会是把缺少的部分补充完整。
然而,面对这幅残缺不全的画面,人类能够轻易理解游戏的逻辑,机器在缺乏明确指令时,却只能一脸懵逼地无所适从。
受此启发,程序猿们开发了游戏类的验证码:将图片旋转到正确的角度,把滑块拖动到正确的位置…为了增加难度,指令往往不是直接通过文本形式给出的,而是隐藏在图片之中。
升级版验证码:一键通过
区分“人类 or 机器”的目的勉强达到了,但验证码依旧被许多人评为“互联网时代最烦人的发明”。
设计过于繁复,浪费用户时间是一个原因;更关键的,对于规范爬数据的程序猿们来说,现在的验证码系统实在不算友好。
难道就没有更科学的解决方案?
2013年,一套升级版的验证码系统问世,叫做“NO CAPTCHA reCAPTCHA”,直译过来“不用验证码的验证码系统”。
谷歌的起名很直白,这套验证系统最大的特点,就是不用再耗尽脑汁去认字、听音或者识图了。只需一个操作——点击“我不是机器人”前面的小框框,就能轻松通过验证。
它区分人机所依据的是什么原理呢?
其实,人与机器最本质的区别不在于能完成什么任务,而在于我们与世界、与互联网互动的方式。机器能够无数次重复同一条鼠标路径,毫厘不差;而对于人类,这根本是个不可能完成的任务。
这种新的reCaptcha正是利用这个特点,在网站的后台鼠标路径、操作逻辑进行实时监控,并对用户行为给出从0.1到 1的评分,分越高,你是人类的可能性也就越大。
不过,这套新的reCaptcha系统正在被越来越多的网站采纳,或许不久之后,曾经作为我们沙雕欢乐来源的上一代验证码系统就要下岗了。
不过,也带来了一些忧虑,最核心的,便是用户隐私的安全性。我们省去了填写验证码的时间,但实时运行的系统,又将检测暴露出多少我们不为人知的“小秘密”呢?
领取专属 10元无门槛券
私享最新 技术干货