captcha和recapcha

写这篇文章是因为看到了recapcha项目的介绍,觉得有必要重新认识一下captcha这个“反人类”却又很必要的项目。

captcha并不是一个单词而是一串单词的缩写 Completely Automated Public Turing Test to Tell Computers and Humans Apart(全自动区分计算机与人类的图灵测试)。我们都知道图灵测试是什么,captcha的核心思想就是设计出人类能够轻易通过但是计算机无法完成的任务,通过任务的测试结果,来确定进行操作的到底是人类还是计算机。

当我还不是知道验证码就是captcha一种最常见应用的时候,曾经因为在各个网站频繁的输入验证码烦的头疼,对这种制度充满了恶意。

后来慢慢自己做java web开发,工作的第一年遇到了公司的某个系统被恶意攻击,发出验证码的接口一天被恶意调用了几万次,损失了一笔钱不说,还导致系统宕机了半天。技术复盘之后发现短信调用接口直接暴露在互联网上,没有任何验证,没有时间间隔和ip地址限制,不验证用户信息,随意调用。开几个线程,写个循环,攻击起来完全没有难度。

当然这样的设计和代码出现,写代码的程序员可以去死一死了,但这件事情确实使我第一次深刻的意识到,验证码做了一件多么重要的事情。

虽然系统不归我负责,我还是一个人默默写了一个图形验证码的生成程序放到了自己代码存档里,这是跟验证码的第一次亲密接触。

第二次接触验证码,我就站在了验证码的对立面。公司给了一个技术预研任务,让我想办法做个爬虫从网上捞点东西下来。被捞数据的那个网站就设置了很完善的验证措施,想要拿信息,唯一的办法就是输入验证码。当时试了很多办法,OCR的效果始终不是很好,错误的次数多了还会被网站的安全策略限制,苦哈哈的卡死在了验证码上。最后实在绕不过去,只能改变了设计方案,从爬数据本地建库变成引入了selenium框架在每次请求数据的时候用户输入验证码的方式,才实现了获取数据的目的。

从这次之后对验证码就比较熟悉了,虽然不再觉得这是一个纯粹用来降低交互体验的设计,但在自己输入验证码的时候,还是说不上喜欢它。

直到前两天看到了recaptcha项目的介绍。贴一下recaptcha项目介绍:
reCAPTCHA计划是由卡内基梅隆大学所发展的系统,主要目的是利用CAPTCHA技术来帮助典籍数位化的进行,这个计划将由书本扫描下来无法准确的被光学文字辨识技术识别的文字显示在CAPTCHA问题中,让人类在回答CAPTCHA问题时用人脑加以识别。reCAPTCHA正数位化纽约时报的扫描存档,目前已经完成20年份的资料,并希望在2010年完成110年份的资料。

为了验证人类所输入的文字是正确的,而不是随意输入,有两个字会被显示出来;一个是光学文字辨识软体无法辨别的字,另一个是一个已经知道正确答案的 字。如果使用者正确的回答出已知正确答案的字,那么就假设所输入的另一个光学辨识软体无法辨识的字是认真的检视后被输入而非随便输入

reCAPTCHA 问题的所需的文字图片,首先会由 reCAPTCHA 计划网站利用 Javascript API 取得, 在终端使用者回答问题后,伺服器再连回 reCAPTCHA 计划的主机验证使用者的输入是否正确。 reCAPTCHA 计划提供了许多程式语言的函式库,让整合 reCAPTCHA 服务到现有程式的过程可以轻松些。除非有较大的频宽需求,否则 reCAPTCHA 原则上是一个免费的服务。

看完这个技术介绍和作用之后竟然莫名的觉得很感动=,=如果captcha是完成了一个技术性的工作,recaptcha无疑到达了更高的层面,是以用技术完成了人工之力不可能完成的文化传承和记录工作,是真正了不起的事情。
忽然的就很想自己也用技术做一点有价值的东西。

附上版权声明:
原作者:Vi_error,博客地址:Vi_error.nextval
转载请保持署名和注明原地址**

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值