首页 > 编程知识 正文

发验证码到12306没反应(12306身份被冒用是怎么回事)

时间:2023-05-03 20:21:17 阅读:84632 作者:249

句子: Bearkiii

大家最近被12306坑爹的验证码埋了画面吧。 在这紧张的抢票节奏中,必须要忍受验证码对智商的考验,生活也很辛苦。

看到网站上奇怪的验证码,网友们纷纷提出对策,我个人认为最难的是以下几点。

什么,你一个都不知道? 图片来源: sinotf.com

但是,吐槽是吐槽,在这个小验证码的背面,其实有很多有趣的故事。 画面上的方寸之间其实有智力上的激烈交战。 在验证码不断发展的背后,是一场声势浩大的技术变革。 而且这个变革,我们每个人都在其中。

验证码的起源

很多人会认为12306的验证码是“反人类”的吧,其实,“反人类”的验证码最初是用于“反机械”的。

1998年,计算机(Compaq Computer Corporation )的4位程序员仁爱的米(Mark D. Lillibridge )、dddx(MartinAbadi )、CJDRG ) Krisis

在这项专利中,他们提出了选择性限制对计算机系统访问的方法(METHOD Forse LECTIVELYRESTrictingaccess Tocomputer Systems )。 他们提出这个方法的主要目的是防止脚本机器人(bot )自动向搜索引擎提交网站。

在该专利中,以随机生成包含字符串的图像的方法生成认证码,通过扭曲外观或添加背景,使得图像不会被OCR (光学字符识别)技术解密。

流程图:随机生成字符库选择随机字符串随机改变外观添加背景提交最终效果

那就是验证码的雏形。

区分人和机器的验证码

你看过上面的验证码的样子吧。 而且,众所周知的认证码技术背后隐藏着这样深刻的问题。

你怎么区分人和机器? ——如何证明坐在电脑前的不是程序而是活人呢?

在这个问题上,一个解决办法是“图灵测试”,即“人类向计算机提问”。 验证码相反,是“机器向人类提问并回答”,验证码也被认为是“反图灵测试”。

2003年,wwdcb(LuisVonAhn )等人提出了“完全自动区分计算机和人类的公开图灵测试”,即captcha (completelyautomatedPublicturingtestotelcomputtu )。

这个短语正是验证码的名字。

这引起了新的问题。 机器人向人类提出的问题,能让机器人解答吗? 如果机器人能够识别验证码,不就意味着该验证码无法验证“人”和“机器”了吗?

之后,各种验证码和验证码的破译层出不穷,程序员们的创造力和智力在这个方寸之间得到了充分的发挥。 然后,我们终于体验到了买火车票的困难。

程序员们智力的角逐

早期的验证码可能是黑客使用的一串简单的ASCII字符

|-|3|_|_ (

() (30 )”

表示“你好”。 这之后发展成了火星文(leetspeak )、o )$O

之后,验证码变成了用图像显示字符串和数字的形式。 这也是我们最常见的验证码。

早期的验证码采用扭曲的文字和坡度背景,但好景不长。 这样的验证码很快就被破译了。

由于照片中的文字和背景颜色之间有很大的差异,程序员们可以使用算法提取照片中各个像素点的值,判断哪个是背景部分,哪个是文字部分。 这样分离文字和背景。

接着,将分离出的字符最终识别为“训练库”——,即存储有这些字符的库——中的字符。 另外,由于英语为26个字符,阿拉伯数字为10个字符,因此这类验证码的识别难度也大幅降低。

如果顺利的话,通过上述过程计算机可以简单地识别验证码,不需要人。 这个验证码也解密了。

于是,令人高兴的是,我们迎来了中文验证码。 庞大的中文字符库保证了认证码的识别难度(也混有拼音)。

不会中文的仁逆向思考验证码识别技术,开始有针对性地对抗。 他们把各个文字粘在一起,很难用算法划分出每一个文字。 另外,每次采用不同的字体也可以增加模式匹配的难度。

oimg.com/origin/10388/1107724635?from=pc">

而到了12306这个程度,考验的就不单纯是图案识别了,还有某些抽象思维的能力——比如我得知道“紫砂壶”到底是个啥,或者至少知道它长啥样,我才能选到正确的验证码图案。这,也就是我们俗称的“智商”……

然而,这样的图片验证码也并不是一劳永逸的,有人展示了用网络上的的识图算法来机器识别12306图片验证码的一种思路。原理大概是这样的:首先将验证码的图片分割成一个个单独的图片,然后将这些图片上传到机器识图的网站上,网站会返回下面的答案。

图片来源:brushes8.com

接着,只需要让机器识别出验证码的“问题”,也就是需要点击的图片是什么“东西”——在这个例子里是“紫砂壶”——最后让计算机一一匹配就可以了。

并且他认为12306的这一方法其实并不靠谱,存在三个问题:

1、图片过于复杂、混淆过多、条件太诡异时会挡住大部分正常用户

2、容易被枚举,题库太弱,不如字符组合可能性多

3、破解门槛不一定高于字符型Captcha

对于这个分析,我举双手双脚赞成。我买不到票不是智商低,而是因为我们属于被挡住的“大部分正常用户”,嗯,一定是这样的。

然后现在, 铁路总局已经表示,12306网站将调整图形验证码中图片的清晰度和分辨率,而且可能剔除根据后台统计出来大家反映最多的和错误率较高的图片验证码……

更多的……验证码?

当然,还有一些更奇葩的验证码。这些验证码已经变成了一种游戏,而不是单纯的为了区分人类与计算机了:

输入正确的验证码就可以将图片中的码去掉……图片来源:ticbeat.com

我的数学是体育老师教的,你们呢?图片来源:buzzedtip.com

会画画,走遍天下都不怕……然而手残怎么办?图片来源:twitter

面对越来越复杂的验证码,算法可能捉襟见肘,然而还有一种万能的破解方式,那就是:人工识别(Cheap or unwitting human labor)。即将验证码分发给分布式的客户端,客户端人肉识别,返回结果。

还有人专门开发了客户端软件,让没事干的大学生人肉识别验证码赚些小钱。如果在线人数足够多,任务下达后几乎都是秒回的,效率也是不错的。所以,识别好验证码也是一项赚钱的技能(大雾)。

验证码还能干啥?

验证码也并非都是那么奇葩,它也可以用来做一些非常有意义的事情。

例如:卡耐基梅隆大学的tmdty等人(对,就是前面提到的造出CAPTCHA这个短语的人啦)设计了一个名叫 reCAPTCHA 的系统,来进行古籍的数字化。

reCAPTCHA将 OCR(光学字符识别)软件无法识别的文字扫描图传给世界各大网站,用以替换原来的验证码图片;那些网站的用户在正确识别出这些文字之后,其答案便会被传回卡耐基梅隆大学。

reCAPTCHA 在 2009 年被 Google 收购,而Google将这一技术发扬光大,不仅用来识别古籍,还用来识别Google街景的街道地址。所以,有一段时间,你会发现google 的验证码变成了某个门牌或者路标:

谷歌的验证码有时候是街景拍到的门牌号。图片来源:tumblr.com

验证码的未来

“反人类”的验证码,从始至终对抗的就不是人类,而是有着庞大计算能力却在模式识别、抽象思维上很弱的计算机。

然而,随着人工智能技术的进步,计算机在模式识别上也越来越强大,验证码也不得不走上越来越“扭曲”、“复杂“、“反人类”的不归路。验证码难度的提升,本质上反应了人工智能技术的进步。

而目前,无论我们多么吐槽12306的验证码,但至少,我们还能够通过它证明我们是真人,而不是机器。这在某种程度上反应了人类在智能上的优越性,至少现在,我们还是比机器智能优越。(或许有一部分小伙伴没法证明?)

目前,Google的算法在扭曲文本类验证码的识别率已经达到了99%,也就是说,这类验证码已经不能作为区分人类和机器的指标了,而总有一天,12306的验证码也会被破解,到那时,为了区分机器和人类,程序猿们又该设计出什么样的验证码呢?

验证码的一生,可以说正是人工智能技术不断进步的一生。而正因为机器越来越聪明,所以人类将不得不面对更多的挑战。或许有一天,人类的造物终将超越人类自己,人工智能终将超越人类,到那一天,验证码或许不复存在了,而人类又该何去何从呢?(编辑:Jerrusalem)

本文来自果壳网,谢绝转载

如有需要请联系sns@guokr.com

版权声明:该文观点仅代表作者本人。处理文章:请发送邮件至 三1五14八八95#扣扣.com 举报,一经查实,本站将立刻删除。