首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

大快人心!12306验证码因过于沙雕,终于迎来“制裁”!

俗话说:没有经历过春运的人,不足以谈论人生。

俗话还说:没有败给过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系统正在被越来越多的网站采纳,或许不久之后,曾经作为我们沙雕欢乐来源的上一代验证码系统就要下岗了。

不过,也带来了一些忧虑,最核心的,便是用户隐私的安全性。我们省去了填写验证码的时间,但实时运行的系统,又将检测暴露出多少我们不为人知的“小秘密”呢?

  • 发表于:
  • 原文链接https://kuaibao.qq.com/s/20190203A0WUDU00?refer=cp_1026
  • 腾讯「腾讯云开发者社区」是腾讯内容开放平台帐号(企鹅号)传播渠道之一,根据《腾讯内容开放平台服务协议》转载发布内容。
  • 如有侵权,请联系 cloudcommunity@tencent.com 删除。

扫码

添加站长 进交流群

领取专属 10元无门槛券

私享最新 技术干货

扫码加入开发者社群
领券