reCAPTCHA项目
文章系本人原创,转载请保持完整性并注明出自 《四火的唠叨》
要说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,光学字符识别)方式对于一些字迹模糊的古老的文字材料,识别率非常低,至少在可以预见的未来,再先进的机器也无法达到人类识别文字的能力:
可以看到,OCR对于字母数量较多的单词识别效果较好,但是对于一些小品词,准确率非常低。
reCAPTCHA是怎样工作的?原理其实也非常简单,对于每次提供给用户的验证码,有一个词是纯粹的验证码部分,用以校验对方是否是人类;还有另一个词正是来自古老文献中的词语,对于通过验证码校验的用户,可以简单地认为他们对这部分古老文献词语的识别也是正确的(事实上这部分的识别率非常高, 官方提供的数据是99.5%)。
大约每天都会有两亿个验证码被人类识别,粗略地说,大概每人次需要花费十秒钟的识别时间,单独看这确实很少,但是累计起来,相当于每天有十五万小时以上的工时,这也是reCAPTCHA得以利用它的重要原因。
如果你也想加入reCAPTCHA项目,比如为自己的网站增加reCAPTCHA的验证码,你可以阅读 这部分文字。其实它的原始想法很简单,但是却是一个很有价值的项目,我的博客在评论部分已经使用了reCAPTCHA验证码,你现在就可以体验到;如果你要获取它的wordpress插件,你可以到 这里找到。
文章系本人原创,转载请保持完整性并注明出自 《四火的唠叨》