- 浏览: 345448 次
- 性别:
- 来自: 南宁
文章分类
最新评论
-
萌蜗牛:
我也用华为smproxy包发送短信,运行一会儿后总是间隔一段时 ...
半桶水开发 CMPP2.0 with Spring + JPA 2 -
萌蜗牛:
我也用华为smproxy包发送短信,运行一会儿后总是间隔一段时 ...
半桶水开发 CMPP2.0 with Spring + JPA 1 -
萌蜗牛:
我也用华为smproxy包发送短信,运行一会儿后总是间隔一段时 ...
半桶水开发 CMPP2.0 with Spring + JPA 3 -
sw970345363:
[b][/b]
jqGrid 表格demo -
二年级chuck:
哪里有Java的验证。
reCAPTCHA 学习
最近在帮朋友写一下小的申请页面,里头有用到验证码来防止恶意注册.
想了一下没能耐造轮子,还是拿来就用吧.找了一下,发现reCAPTCHA 这个非常不错,还支持声音,不过验证码看起来有点模糊.做一下笔记
先看看它的工作流程
1. The user loads the web page with the reCAPTCHA challenge JavaScript embedded.
2. The user's browser requests a challenge from reCAPTCHA. reCAPTCHA gives the user a challenge and a token that identifies the challenge.
3. The user fills out the web page form, and submits the result to your application server, along with the challenge token.
4. reCAPTCHA checks the user's answer, and gives you back a response.
5. If true, generally you will allow the user access to some service or information. E.g. allow them to comment on a forum, register for a wiki, or get access to an email address. If false, you can allow the user to try again.
然后,你得有个帐号,然后生成一个key,跟Google的adsense类似
移步这里去申请一个,然后生成你的key.
好,先在客户端加上一段js,这样就可以加载这个验证码了
这里有2种方式生成这个验证码,一个是在form中直接添加js代码
它将在form中生成2个input, recaptcha_challenge_field (系统生成的值) 和 recaptcha_response_field (用户输入值)
These APIs create two form fields: recaptcha_challenge_field is a hidden field that describes the CAPTCHA which is put on the page. recaptcha_response_field is a text field where the user can enter their answer.
还有一种方式是用ajax的方式生成,这里有个 demo.
在head中插入
然后用类似
来,在"recaptcha_div" 中生成的验证器.
关于界面的定制
我们可以用类似
来定制界面,当然还包括语言,
需要注意的是,默认语言界面里头没有简体中文,我们可以用它的custom_translations 属性来自定义中文,我在js代码中找到了英文的定义,然后手工翻译一下
粗糙翻译一下,欢迎拍砖:
这里还有详细的 客户端 API,大家可以围观.
服务端部分
我写的程序是用php的,先看看php的api吧,Java的也有,但还没研究,回头再贴出来
首先你得下载它的依赖库
然后
recaptcha_get_html 函数有3个参数
recaptcha_get_html($pubkey,$error ,$use_ssl)
$pubkey -- string. 必需. public key
$error -- string. 可选(默认null) 如果设置了值, reCAPTCHA 会显示这个错误的代码. 错误代码来自 ReCaptchaResponse->$error
$use_ssl -- boolean. 可选(默认false) 是否启用ssl
校验验证码
主要的方法是 recaptcha_check_answer()
它有4个参数
$privkey -- string. 必需. 申请的 private key
$remoteip -- string. 必需. 用户的ip,格式:192.168.0.1
$challenge -- string. 必需recaptcha_challenge_field 字段的值,来自前台页面
$response -- string. 必需 recaptcha_response_field 字段值
Return value 返回 ReCaptchaResponse class 的实例
ReCaptchaResponse 类有2个属性
$is_valid -- boolean 校验是否有效?
$error -- string 返回的错误代码
想了一下没能耐造轮子,还是拿来就用吧.找了一下,发现reCAPTCHA 这个非常不错,还支持声音,不过验证码看起来有点模糊.做一下笔记
先看看它的工作流程
1. The user loads the web page with the reCAPTCHA challenge JavaScript embedded.
2. The user's browser requests a challenge from reCAPTCHA. reCAPTCHA gives the user a challenge and a token that identifies the challenge.
3. The user fills out the web page form, and submits the result to your application server, along with the challenge token.
4. reCAPTCHA checks the user's answer, and gives you back a response.
5. If true, generally you will allow the user access to some service or information. E.g. allow them to comment on a forum, register for a wiki, or get access to an email address. If false, you can allow the user to try again.
然后,你得有个帐号,然后生成一个key,跟Google的adsense类似
移步这里去申请一个,然后生成你的key.
好,先在客户端加上一段js,这样就可以加载这个验证码了
这里有2种方式生成这个验证码,一个是在form中直接添加js代码
<script type="text/javascript" src="http://api.recaptcha.net/challenge?k=<your_public_key>"> </script> <noscript> <iframe src="http://api.recaptcha.net/noscript?k=<your_public_key>" height="300" width="500" frameborder="0"></iframe><br> <textarea name="recaptcha_challenge_field" rows="3" cols="40"> </textarea> <input type="hidden" name="recaptcha_response_field" value="manual_challenge"> </noscript>
它将在form中生成2个input, recaptcha_challenge_field (系统生成的值) 和 recaptcha_response_field (用户输入值)
引用
These APIs create two form fields: recaptcha_challenge_field is a hidden field that describes the CAPTCHA which is put on the page. recaptcha_response_field is a text field where the user can enter their answer.
还有一种方式是用ajax的方式生成,这里有个 demo.
在head中插入
<script type="text/javascript" src="http://api.recaptcha.net/js/recaptcha_ajax.js"></script>
然后用类似
Recaptcha.create("6LdIEwAA......", //这个是 public_key "recaptcha_div", // 生成位置的ID { theme: "red", //显示主题 callback: Recaptcha.focus_response_field //回调函数 });
来,在"recaptcha_div" 中生成的验证器.
关于界面的定制
我们可以用类似
var RecaptchaOptions = { theme : 'white', tabindex : 2 };
来定制界面,当然还包括语言,
需要注意的是,默认语言界面里头没有简体中文,我们可以用它的custom_translations 属性来自定义中文,我在js代码中找到了英文的定义,然后手工翻译一下
var RecaptchaStr_en = { visual_challenge : "Get a visual challenge", audio_challenge : "Get an audio challenge", refresh_btn : "Get a new challenge", instructions_visual : "Type the two words:", instructions_audio : "Type what you hear:", help_btn : "Help", play_again : "Play sound again", cant_hear_this : "Download sound as MP3", incorrect_try_again : "Incorrect. Try again." };
粗糙翻译一下,欢迎拍砖:
var RecaptchaOptions = { custom_translations : { visual_challenge : "获取图形验证码", audio_challenge : "获取声音验证码", refresh_btn : "获取新的验证码", instructions_visual : "输入2个单词:", instructions_audio : "输入您听到的:", help_btn : "帮助", play_again : "重播", cant_hear_this : "下载语音为MP3", incorrect_try_again : "错误. 请重试." } };
这里还有详细的 客户端 API,大家可以围观.
服务端部分
我写的程序是用php的,先看看php的api吧,Java的也有,但还没研究,回头再贴出来
首先你得下载它的依赖库
然后
require_once('recaptchalib.php'); $publickey = "..."; // 申请的public key echo recaptcha_get_html($publickey); //生成获取验证码的html代码,类似前面的用js生成
recaptcha_get_html 函数有3个参数
recaptcha_get_html($pubkey,$error ,$use_ssl)
$pubkey -- string. 必需. public key
$error -- string. 可选(默认null) 如果设置了值, reCAPTCHA 会显示这个错误的代码. 错误代码来自 ReCaptchaResponse->$error
$use_ssl -- boolean. 可选(默认false) 是否启用ssl
校验验证码
主要的方法是 recaptcha_check_answer()
require_once('recaptchalib.php'); $privatekey = "..."; $resp = recaptcha_check_answer ($privatekey, $_SERVER["REMOTE_ADDR"], $_POST["recaptcha_challenge_field"], $_POST["recaptcha_response_field"]); if (!$resp->is_valid) { die ("The reCAPTCHA wasn't entered correctly. Go back and try it again." . "(reCAPTCHA said: " . $resp->error . ")"); }
它有4个参数
$privkey -- string. 必需. 申请的 private key
$remoteip -- string. 必需. 用户的ip,格式:192.168.0.1
$challenge -- string. 必需recaptcha_challenge_field 字段的值,来自前台页面
$response -- string. 必需 recaptcha_response_field 字段值
Return value 返回 ReCaptchaResponse class 的实例
ReCaptchaResponse 类有2个属性
$is_valid -- boolean 校验是否有效?
$error -- string 返回的错误代码
评论
3 楼
二年级chuck
2013-08-08
哪里有Java的验证。
2 楼
xiha211
2010-02-26
这个还挺详细的,thanks
1 楼
meteormatt
2009-12-19
没看懂.
不好意思.
不好意思.
发表评论
-
silex 汉化文件
2009-06-03 22:03 1218今天看了一下新闻介绍的silex 这个项目 看起来样子不错, ... -
CakePhp phpThumb Compenet
2009-05-07 10:40 2129参照了一下官网的国际友人的一篇帖子修改的 请先将phpthu ... -
cacti安装笔记
2009-04-07 10:45 2342今天同事装cacti有些问题,让我帮忙装,顺便记一下笔记 我 ... -
在OSX下安装php oracle instanclient
2009-03-12 13:54 1394项目需要用php + oracle 在本机调试需要装orac ... -
关注PHP的ORM框架 -- propel
2009-02-13 10:47 5400最近在看PHP的 rails式的框架 symfony,这是个整 ... -
补充一个jqgrid的demo php后台
2009-02-11 09:28 10304之前写了一个,感觉后台代码不是很好理解,再发一个吧 09-03 ... -
Mac apache2 mod_fcgid 权限问题
2009-02-03 11:20 1873呃,原来一直被这个组合的 403问题折磨,文件夹权限都正确.反 ... -
刷公司日志 php 脚本
2009-01-21 16:41 1263#!/usr/bin/env php /** * 自动 ... -
mac下用macport 安装lighttpd + php +fastcgi + freetds笔记
2009-01-06 19:45 24491.安装Macports 2.更新port sudo port ... -
MySQL数据库版本控制 ---ruckusing
2008-12-01 08:27 1898最近在做一个项目的时候偶然遇到这个这个 ruckusing 按 ... -
phptelnet for cakephp
2008-11-20 15:16 1927最近有用到在PHP telnet到远程的服务器上校验用户密码的 ... -
搞定osx下的freetds
2008-10-18 13:51 1452在OSX下开发PHP+Mssql是需要有freetds的 先 ... -
Xdebug的远程调试搞明白了
2008-10-17 22:39 12865琢磨了1天终于给搞明白了 懒得自己编译的话下面有编译好的包 ... -
PHP 5.3的新特点
2008-08-08 02:08 1063原文 :http://www.iteye.com/news/3 ... -
一个PHP动态数据库基础类
2008-08-14 02:52 1025参考:http://www.ibm.com/developer ... -
Php.ini 配置(中文)
2008-08-20 01:47 1413原文:http://lamp.linux.gov.cn/Web ... -
PHP-ExcelReader 安装&使用
2008-09-16 08:29 10462原文:http://sourceforge.net/docma ... -
兼容PHP4的json_Encode
2008-09-16 08:23 2459忘了从哪里弄来的了 if (!function_exis ... -
超强php的firebug插件
2008-09-16 08:22 1805这个的主要作用是输出php的调试信息哦.先看看截图 Fire ... -
一个PHP动态数据库基础类
2008-09-16 08:18 1506参考:http://www.ibm.com/developer ...
相关推荐
以91%的准确率击败最新版本的ReCaptcha
每次解决我们的验证码时,人工就可以帮助对文本进行数字化,为图像添加注释以及构建机器学习数据集。 反过来,这有助于保存书籍,改进地图并解决难于解决的AI问题。 ##用$ npm安装$ node app.js 造访:localhost...
以85%的准确度击败Google的音频reCaptcha验证码
特别是,我们将自动收集测试数据,并应用人工智能的机器学习概念来学习收集的测试数据,人工智能是近年来最流行的技术; 以便计算机可以判断Google本身提供的单词并选择图片。 为此,我们首先考虑如何通过机器学习...
一个异步Python库,可使用Mozilla的DeepSpeech,PocketSphinx,Microsoft Azure和Amazon的Transcribe语音转文本API通过音频自动解决ReCAPTCHA v2。 内置Pyppeteer for Chrome自动化框架和与Puppeteer的相似之处,...
如何使用python实现reCAPTCHA。 您将在线找到的软件包是多余的。 您只需要发送带有某些参数的POST请求即可对Google进行验证。 在Google App Engine上使用cron安排任务。 由于GAE不支持ICMP或telnet,因此如何使用...
LMS-Laravel是一个学习管理系统(LMS),它允许您管理课程和学习模块,从而有助于创建教育内容。 该平台简单直观,并提供以下功能: 老师(课程创建者) 学生(或用户) 管理员 顾名思义,LMS-laravel建立在最新...
Ostrichinator旨在提供一个发现对抗性示例并可能收集人类React的方法,从根本上可能有助于改善当前的深度学习算法。 该项目的前端基于Python Flask,可处理来自用户的请求并将作业传递给后端,后端在基于MatConvNet...
QueryIt Smart 是一个演示应用程序,它结合了用于大规模数据分析的和用于可扩展机器学习分析的 。 看看 有关该技术的详细信息的页面。 准备 服务帐号 JSON 密钥 您需要有一个启用了计费帐户的 Google Cloud Platform...
Packt-Publishing-Free-Learning, 自动声明和从https下载免费的每日电子书的脚本 免费学习PacktPublishing脚本这可以从你的账户...脚本使用 anti-captcha.com 服务绕过Recaptcha验证器来完全自动运行。 Anticaptcha.com
除了在其他方面同时应用其他技术(例如Google Recaptcha,Nodejs,MongoDB和使用 RESTful API)之外,我的目标是创建一个学习React的个人网站。 经验是无价的,为将来的项目提供了很多基本知识。用于构建它的技术是...
通过与我们一起解决验证码问题,您可以帮助世界上最贫困地区的人们赚钱,这不仅可以满足他们的基本需求,还可以使他们有能力在经济上帮助他们的家人,学习并避免他们根本不快乐的工作。 要使用该服务,您需要并...
如果您已经是Learn Spring Security的学生,则可以开始更深入地学习模块2的注册。 如果您还不是学生,则可以在这里访问该课程: : 相关文章: 通过Spring注册–集成reCAPTCHA 清除注册生成的过期令牌 返回用户的...
ecard:核心2.0启动微网站:学习架构和布局以创建一个发送问候的网站
事实证明,最先进的深度学习技术在图像识别方面非常强大,今天,我们将使用其中的一些技术来构建概念验证的reCAPTCHA求解器: Heli 。 注意:此处提出的许多想法均来自Hossen等人的论文。 :验证码作为图像分类问题...
通过完成reCAPTCHA,HaxBall Headless API。 然后,选择一个房间配置文件并启动服务器: node server.json rooms/test.json YOUR_TOKEN 房间配置文件可让您自定义房间。 roomName :HaxBall房间的名称 maxPlayers ...
去做 发电子邮件范本/ i18n 管理网格打印按钮 访问控制列表 根据要求删除动作,删除库存请求中保存的图像 RMA传呼机 Mageplaza Google ReCAPTCHA讯息 响应式设计 资料来源
看看基类文档开始学习并检查(最小示例是插件)以供参考。 我们使用 (和纱线工作区)提供动力的 , 进行测试,皮棉和的样式大量使用,以根据代码自动生成降价。 :-) 莱娜 莱娜 该monorepo由和纱线工作区提供动力...