欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

reCAPTCHA项目

程序员文章站 2022-04-11 11:06:01
...

要说reCAPTCHA,就要先说一说CAPTCHA,全称是Completely Automated Public Turing test to tell Computers and Humans Apart,即全自动区分计算机和人类的图灵测试,也就是通常说的“验证码”,目的就是要把计算机和人区分开来。在互联网站上,为了防止不安全的、重复暴力的登陆密码破解等操作,需要使用验证码来将机器行为拒之门外。

验证码当然可以被识别,随着破解和反破解技术的发展,验证码的技术日新月异(简单的验证码很容易实现,在我刚开始学习JavaEE的时候,曾经写过一个验证码的实现程序)。最初对于验证码的机器识别,大多采用“规则”的方式来实现,而如今则利用给定破解成功和失败的数据集合,更多地采用机器学习的方式来实现。另一方面,也不要忽视“人工破解”的价值,比如利用一些非法运营的网站,吸引用户在登陆、下载等等行为以前,输入待破解的验证码,让用户来帮助破解验证码。

所谓reCAPTCHA,用官方自己的话来说,is a free anti-bot service that helps digitize books,即一个帮助数字化书籍的反机器服务。

对于一些数字时代以前的书籍、报纸,甚至电台节目,需要有人和工具来把它们一一解析成文字存储起来。如果本身以视频和图片的方式存储,占用大量存储不说,人类不易对其中的内容获得了解,也没有办法做进一步的统计、分析,以及索引和搜索等等。

传统的OCR(Optical Character Recognition,光学字符识别)方式对于一些字迹模糊的古老的文字材料,识别率非常低,至少在可以预见的未来,再先进的机器也无法达到人类识别文字的能力:

reCAPTCHA项目
            
    
    博客分类: Note & Try CAPTCHA验证码 

可以看到,OCR对于字母数量较多的单词识别效果较好,但是对于一些小品词,准确率非常低。

reCAPTCHA是怎样工作的?原理其实也非常简单,对于每次提供给用户的验证码,有一个词是纯粹的验证码部分,用以校验对方是否是人类;还有另一个词正是来自古老文献中的词语,对于通过验证码校验的用户,可以简单地认为他们对这部分古老文献词语的识别也是正确的(事实上这部分的识别率非常高,官方提供的数据是99.5%)。

大约每天都会有两亿个验证码被人类识别,粗略地说,大概每人次需要花费十秒钟的识别时间,单独看这确实很少,但是累计起来,相当于每天有十五万小时以上的工时,这也是reCAPTCHA得以利用它的重要原因。

如果你也想加入reCAPTCHA项目,比如为自己的网站增加reCAPTCHA的验证码,你可以阅读这部分文字。其实它的原始想法很简单,但是却是一个很有价值的项目,我的博客在评论部分已经使用了reCAPTCHA验证码,你现在就可以体验到;如果你要获取它的wordpress插件,你可以到这里找到。

文章系本人原创,转载请保持完整性并注明出自《四火的唠叨》

相关标签: CAPTCHA 验证码