要说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插件,你可以到这里找到。
文章系本人原创,转载请保持完整性并注明出自《四火的唠叨》
相关推荐
因此用户在输入验证码时,不但可以起到防SPAM的作用,还为reCAPTCHA项目校对工作作出了贡献,真是天才的创意呀! 如何在 WordPress 博客上使用reCAPTCHA呢? 对于 WordPress 博客而言,就像标题所写的那样,已经有...
前端项目-angular-recaptcha,An AngularJS module to ease usage of reCaptcha inside a form
开源项目-romanyx-recaptcha.zip,Go wrapper for http://www.google.com/recaptcha
项目描述 :recycling_symbol: Google的的最小,无戏剧性,无摩擦的C# HTTP验证客户端。 .NET中当前的ReCaptcha库的问题在于,它们全部都对基础Web框架(例如ASP.NET WebForms , ASP.NET MVC 5 , ASP.NET Core或...
开源项目-haisum-recaptcha.zip,Golang package for google re-captcha
Laravel开发-laravel-recaptcha Laravel项目的一个简单的recaptcha实现。
vue3-recaptcha2 适用于Google reCAPTCHA v2的Vue v3组件安装npm install vue3-recaptcha2用法示例< template> ...</ vue></ template>< script >i
vue-recaptcha描述注意:github上的文档始终引用master分支。 有关稳定版本,请阅读NPM上的文档。...reCAPTCHA v3注意:该项目当前不支持reCAPTCHA v3。 说明安装NPM CDN用法入门将挑战绑定到按钮自动加载
验证码2 用于ASP.NET MVC 5 小部件 ... 将 Recaptcha2 类添加到您的 ASP.NET MVC 5 项目。 将 Recaptcha2 添加到您的表单视图中: @ using Recaptcha2 ... @ using ( Html . BeginForm ()) { ... < div c
验证码演示 该项目使用 jsp 和 java 演示了来自 google ( ) 的 recaptcha 库。 您可能需要创建自己的密钥和秘密才能使用 recaptcha。 请访问此链接
reCAPTCHA4net 是项目的一个分支。 它允许轻松地将服务集成到 ASP.NET Web 应用程序中。 支持 Web 窗体或 ASP.NET MVC。 虽然 reCAPTCHA4net 与用于 .NET程序集的Recaptcha完全向后兼容,但它支持更新的 reCAPTCHA ...
reCAPTCHA: : 这个仓库: : 托管的演示: : 版本:1.2.4 许可证:BSD,请参阅安装作曲家(推荐) 使用从Packagist安装此库: 从您的项目目录运行以下命令以添加依赖项: composer require google/recaptcha " ^...
将一个添加到您的项目中。 演示: : 安装 手册 下载。 凉亭 bower install --save angular-recaptcha npm npm install --save angular-recaptcha 用法 有关快速使用示例,请参见。 IMPORTANT: Keep in mind ...
在您的leiningen项目依赖项中包含该库: [clj-recaptcha " 0.0.2 " ] 显示reCAPTCHA 为了使reCAPTCHA小部件在页面加载时显示,您需要在<form>元素中插入JavaScript和非JavaScript代码的片段。 要生成代码段...
实现一个类,该类使您可以通过.NET(Webforms或MVC)使用Google Recaptcha V2库 还实现了Google此处记录非常糟糕的安全令牌功能: : 安全令牌要求在EBC模式下使用AES,并使用PKCS5 / PKCS7填充。 密钥和初始化...
将带有yarn或npm @nuxtjs/recaptcha依赖项添加到您的项目中 将@nuxtjs/recaptcha添加到nuxt.config.js modules部分 配置它: { modules : [ [ '@nuxtjs/recaptcha' , { /* reCAPTCHA options */ } ] , ] } ...
然后,您可以将图像放置在任意位置,甚至可以在Flash项目中使用它,因为reCAPTCHA不提供Flash前端。 去做 JavaScript版本现在没有PHP版本有用。 您必须想出一种方法来自己从noscript页面获取HTML。 我在test / js /...
将Google的添加到您的项目中。 该库会自动处理ReCaptcha的事件并检索验证令牌,或者在无法进行隐形的情况下通知您提出挑战。 警告 :warning: 请注意,该库仅适用于ReCaptcha v2隐形键! 创建时,请确保选中...
该项目使用来解决和绕过reCaptcha。 由于克服reCaptcha的音频挑战并不,因此Google通常不允许您 该项目旨在帮助残疾人和厌倦解决挑战的人们。 这个怎么运作 路线图 在addons.mozilla.org上列出 Tor浏览器(.onion ...
该存储库已被弃用,该项目已移至 。 产品特点 同一页面上以及不同页面上的多个reCAPTCHA组件。 多个站点密钥和一个默认站点密钥 无缝集成到EmberJS应用程序中。 正确地将属性绑定到选项,以进行实时,动态更新。 ...