在被12306坑之后 我们聊聊验证码发展史

news/2024/11/19 6:45:04/

年关将至,也正值春运购票高峰,正所谓“一张车票引无数英雄尽折腰”。近日,铁路部门的官方购票网站12306再次成为网友调侃的对象。不过,这次 调侃的内容不再是抢票难的问题,而换成了12306登陆时的图形验证码。部分网友在购票时发现,该网站的少数图形验证码不仅难以识别,甚至有些物品名称都 没有听说过,最终也导致部分人没有买到理想的回家车票。既然验证码这么“反人类”,那它存在的意义是什么呢?今天笔者就带大家回顾下验证码的发展史,看看 它究竟有什么用。

网龄较久的网友大概都记得,刚开始上网的时候是不存在验证码这么一种东西的。这造成的结果是,垃圾评论和垃圾邮件可以轻松通过任何一个网站的注册程序,通过各种方式轰炸人民群众的眼球。

最先想要解决这一问题的是雅虎,作为互联网时代早期最重要的免费邮件提供商,他们一方面要解决用户们每天遇到的数以百计的垃圾邮件轰炸,另一方面,他们 自己的免费邮箱,恰恰又是垃圾邮件的最爱,耗费无数资源所阻止的垃圾邮件,都来自于自己的服务器。这让雅虎开始认真考虑如何解决人机辨识问题。

他们找到一位当时刚刚21岁的卡内基梅隆大学的计算机天才路易斯。而路易斯给出的方案,就是这个让人民群众微微皱眉,但是让计算机耸肩挠头的验证码(英文名CAPTCHA,全自动区分计算机和人类的图灵测试的缩写)。

验证码之父:路易斯·范·安

这是一个简单而巧妙的设计,计算机先是产生一个随机的字符串,然后用程序把这个字符串的图像进行随机的污染,扭曲,再显示给电脑前的人,而只有人眼才能够辨识这些被随机污染的扭曲字符。

这种让用户输入一个扭曲变形的图片所显示的数字或字母的方法,便是最原始的一种验证码。后来,验证码也开始给各大网站用来登录和申请账号使用,还有用来回复论坛帖的时候使用,从而规避多次登录失败和批量申请账号的问题,和防止论坛灌水等问题。

验证码的演化

随 着互联网的发展,验证码渗透到人们数字化生活的各个角落。虽然是出于安全的考虑,但是越来越多的用户开始诟病这一反人类的设计发明,每天都要花部分时间 浪费在无趣的识别数字上,大大降低了一些网站的交互体验。同时,随着计算机自动识别技术的发展,简单的验证码数字图形也不再安全,很容易被黑客攻破。因 此,这几年针对各类场景改进的验证码开始出现。

(1)行为式验证码

行为式验证码应该算是目前比较流行的一种验证码。从字面来理解,就是通过用户的操作行为来完成验证,而无需去读懂扭曲的图片文字。常见的有两种:拖动式与点触式。

拖动式验证码,类似于手机的滑动解锁,根据提示用鼠标将滑块拖动到指定的位置完成验证;点触式验证码,同样根据文字提示,点击图片中与文字描述相符的内容完成验证。

对于点触式来说我们也并不陌生,12306的验证码就是一种典型的点触式验证码,且风靡一时的《找你妹》游戏也是点触式验证码的游戏原理。根据文字提示,选出与文字描述相符的一样或多样物品图片,只不过在图片的辨识度上还有待优化。

以上这种带点游戏性质的验证交互方式,为用户带来更有趣的验证过程,提升了用户的交互体验。而对于采用此种验证方式的各大网站来说,行为验证码的吸引力 还在于它更安全,验证码背景图片采用多种图像加密技术,且添加了很多随机效果,能有效防止OCR文字识别。另外,验证码上的文字采用了随机印刷技术,能够 随机采用多种字体、多种变形的实时随机印刷,防止暴力破解。除此以外,部分网站还在验证背景图片中植入广告,带来一定的宣传效果和经济利益。

什么是OCR识别?

OCR文字识别,指利用OCR (Optical Character Recognition,光学字符识别)技术,将图片、照片上的文字内容,直接转换为可编辑文本。

(2)手机验证码

随着移动互联网的发展,通过手机接收验证码的方式越来越常见。手机验证码通常是通过发送验证码短信到手机,大型网站尤其是购物网站,都提供有手机短信验 证码功能,可以比较准确和安全地保证购物的安全性,验证用户的正确性,是最有效的验证码系统。某些验证码接入商提供手机短信验证码服务,各网站通过接口发 送请求到接入商的服务器,服务器发送随机数字或字母到手机中,由接入商的服务器统一做验证码的验证。

当 然,在使用过程中偶尔也会碰到收不到短信的情况,导致一些网站的潜在用户流失。于是便有了升级版的手机语音验证码,只要用户的手机或座机能正常接听电 话,就一定能收到语音验证码,验证码实现自动语音播报(大家如果有注册《饿了么》就知道),同时短信也能同时发送到用户手机,实现双保险确保万无一失。语 音验证码如果有拨通失败的,系统还能自动重播,确保不漏掉任何一个,从根本上解决您的网站用户收不到验证码的问题。

(3)其他

除了以上这几种,还存着一些特殊的验证码方式。例如银行网银提供的电子口令卡、游戏提供的电子密保等。这类验证码的作用在于即使用户不慎外泄或被盗了 登录卡号和登录密码,只要保管好手中的口令卡,使登录卡号、登录密码、口令卡不被同一个人获取,就能够保证用户账户的安全,从而让用户更加安全、放心地使 用。

验证码的未来

从 验证码的发展进程来看,基本可以预测出未来的主要发展方向。首先 是验证码的本质属性——安全性。安全性需要进一步提高,简单数字图形验证将被逐步淘汰,更完善的验证码技术在未来除了防止恶意破解密码、刷票、论坛灌水、 刷页等行为外,还是用户与网站信息安全的有力保障。

其次,验证码在交互形式上继续提升,越来越注重用户体验,减少验证码的存在感,类似于12306这 种“大家来找茬”的“坑爹”验证码越来越少。在未来, 验证码可以予以手机等移动终端辅助,以扫码的形式进行登录或验证,就好像现在的微信网页版登录一样;再或是采用一些生物识别技术,例如指纹、虹膜等方式实 现无需手动操作的登陆验证。笔者希望有一天,你在评论这篇文章的时候,可以不用繁琐地辨别歪曲字符输入回复验证码,让人机交互更加轻松便利。


来源:51CTO


http://www.ppmy.cn/news/803721.html

相关文章

selenium实现12306全自动购票

**思路:**1.selenium 定位登录12306; 2.登录后跳转至index.html页,自动输入行程日期,选择"高铁/动车",点击"查询"按钮; 3.跳转至购票页https://kyfw.12306.cn/otn/leftTicket/init?linktypeiddc&fs%E5%8…

从12306.cn谈大网站架构与性能优化

PS:关于12306.cn网站,前些时间,骂的人很多,但是这网站的压力和架构不是一般非专业人生想得这么简单。下文是资深架构师陈皓写的关于12306.cn购票网站的架构和性能系列分析,个人认为很有参考价值,转载如下&a…

selenium实现12306火车购票网站滑块自动验证登录

解决滑块验证登录问题和网站禁止selenium操作无法通过验证问题,问题过程如下,亲测有效: 当输入账号密码,点击登录后出现如下滑动解锁框: 此时,完成滑块自动滑动至右边解锁,写个拖动滑块的函数…

由12306.cn谈谈网站性能技术

12306.cn网站挂了,被全国人民骂了。我这两天也在思考这个事,我想以这个事来粗略地和大家讨论一下网站性能的问题。因为仓促,而且完全基于本人有限的经验和了解,所以,如果有什么问题还请大家一起讨论和指正。&#xff0…

由12306谈谈网站性能技术

12306.cn网站挂了,被全国人民骂了。我这两天也在思考这个事,我想以这个事来粗略地和大 家讨论一下网站性能的问题。因为仓促,而且完全基于本人有限的经验和了解,所以,如果有什么问题还请大家一起讨论和指正。&#xff…

说说12306,呆在深圳就只能一直抢票

修改一下文章,标题也修改一下,之前叫《决定软件不是技术》,其实主要是写决定软件并不是技术本身,而是你对软件本身的定义或者说是对软件解决问题的定义,而技术只是实现的一种手段,感觉自己表达能力太烂&…

学习笔记——12306 手动登录解析(1)

#-*-coding:utf-8 -*- import urllib2 import urllib # 验证码登录同步 import cookielib import ssl #证书验证 ssl._create_default_https_context ssl._create_unverified_context # 请求验证码图片 ccookielib.LWPCookieJar()#生成一个储存cookie的对象 cookieurllib2.HTT…

python3 requests 实现12306购票登录模块

12306登录模块分析 第一次写文章,记录一下学习的内容。今天先记录登录模块的分析和实现。 在博客上看见一些大佬用的是splinter webdriver写的12306购票过程。 由于我之前学习了一阵子requests库,所以以下使用python3requests实现12306购票。&#xf…