要说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-master”来看,这很可能是项目的源代码主分支,通常包含项目的结构、配置文件、源代码、测试用例等。master分支是Git版本控制系统中的默认分支,代表了项目的最新稳定...
开源项目“romanyx-recaptcha”是一个用Go语言编写的Google reCAPTCHA接口封装库,旨在帮助开发者更方便地在Go应用中集成Google的reCAPTCHA服务。reCAPTCHA是一种防止机器人和自动化程序进行恶意操作的安全验证工具...
本教程将深入讲解如何在Laravel项目中集成并使用reCAPTCHA。 首先,让我们了解什么是reCAPTCHA。reCAPTCHA是由Google提供的一个免费服务,它通过向用户展示一组图像或执行简单的交互任务来区分人类和计算机。这个...
本项目"Google reCaptcha验证码对接Demo"是一个Java实现的示例,它展示了如何将Google reCaptcha整合到前后端应用中,以确保用户验证的有效性。 首先,我们来看前端部分。前端需要引入Google提供的api.js脚本,这个...
标题中的“Python-以91的准确率击败最新版本的ReCaptcha”表明这是一个关于使用Python编程语言,通过机器学习技术来解决谷歌ReCaptcha验证的项目。ReCaptcha是谷歌提供的一种反垃圾机器人服务,它通常用于确保网络...
在 Laravel 项目中安装 "laravel-recaptcha" 扩展包,可以使用 Composer。在终端中运行以下命令: ```bash composer require mews/recaptcha ``` 安装完成后,需要在 `config/app.php` 文件的服务提供者部分...
在本文中,我们将深入探讨如何在 Laravel 开发中集成 Google 的 reCAPTCHA 服务,以增强网站的安全性,防止恶意机器人...它简化了配置、前端显示和后端验证的步骤,使得在 Laravel 项目中使用 reCAPTCHA 变得轻而易举。
在Laravel框架中,reCAPTCHA是一个非常...通过以上步骤,你可以在Laravel项目中集成reCAPTCHA,为你的用户界面提供一个安全的人机验证机制。正确实施reCAPTCHA可以有效防止恶意活动,同时为正常用户提供流畅的体验。
通过以上步骤,Laravel 开发者可以轻松地在项目中实现 Invisible reCAPTCHA,提升网站的安全性,同时保持用户友好的交互体验。在实际应用中,还可以根据项目需求进行自定义设置和扩展,例如调整 reCAPTCHA 的样式或...
1. **获取API密钥**:首先,你需要在Google reCAPTCHA的官方开发者网站上注册并创建一个新的reCAPTCHA项目,这会为你提供一对公钥和私钥。 2. **插入密钥**:将获取到的公钥插入到你的网站代码中,私钥则保留在...
这个开源库是专门为前端开发者设计的,帮助他们在项目中集成和验证Google的reCAPTCHA服务。 `前端开源库-recaptcha`是一个用于JavaScript的开源库,允许开发者在他们的网页中轻松地添加和处理reCAPTCHA。reCAPTCHA...
项目描述 :recycling_symbol: Google的的最小,无戏剧性,无摩擦的C# HTTP验证客户端。 .NET中当前的ReCaptcha库的问题在于,它们全部都对基础Web框架(例如ASP.NET WebForms , ASP.NET MVC 5 , ASP.NET Core或...
本项目“recaptcha-demo”是针对Google的reCAPTCHA服务的一个Java实现,它提供了一个演示如何在Java应用中集成reCAPTCHA的实例。reCAPTCHA是Google推出的一种高级验证码系统,它通过人工智能和机器学习技术来区分人...