Captcha这个词很搞,典型的网络缩写成的词语。原意是
Completely
Automated
Public
Turing test to tell
Computers and
Humans
Apart的缩写。发音近似"Capture"。中文的话可以叫验证码。
例如:
网上有很多开源的实现。详细实现先挖个坑,以后有空补上。这里暂时先记录下如何使用。
貌似最先提供开源验证码的是google?(错了请勿见怪。)所以找了两个Google的captcha来用。
一个是Kaptcha,是一个简单的captcha实现
另一个是reCaptcha,这个就牛点了,不仅仅提供文字,还提供发音。
那么,先从Kaptcha开始。
一. Kaptcha官网( 猛击这里)
既然是轻量级实现,用起来自然简单。其实官网的Wiki上已经有简明的使用指南,我这里再用中文简单介绍。
最基本的实现方式总共涉及文件只有3个——需要添加的页面、web.xml和对应的kaptcha-2.3.2.jar文件。
用eclipse创建一个DynamicWebProject。
1. 先编写一个简单的页面,这里以jsp为例 (只显示body部分,其他部分略)
用起来超级简单。在需要插入验证码的地方直接插入kaptcha.jpg的图片(名字必须与web.xml中定义的一致).
2. 修改web.xml,并把kaptcha-2.3.2.jar拷入WEB-INF/lib下
简单的加入处理kaptcha.jpg的Servlet
3. 验证
这里是用JS来做个验证,当然实际用的时候就用Servlet去做,但步骤是一样的。
a. 从session里面取出key为 com.google.code.kaptcha.Constants.KAPTCHA_SESSION_KEY 的值,其实就是图片中真正的code;
b. 取出用户实际输入的值;
c. 比较。。。
验证页面:
二. reCAPTCHA
官网( 猛击这里)
1. 先下载提供的三方包( 猛击这里),里面包含了该plugin的源码和jar文件
To be continued..
例如:
网上有很多开源的实现。详细实现先挖个坑,以后有空补上。这里暂时先记录下如何使用。
貌似最先提供开源验证码的是google?(错了请勿见怪。)所以找了两个Google的captcha来用。
一个是Kaptcha,是一个简单的captcha实现
另一个是reCaptcha,这个就牛点了,不仅仅提供文字,还提供发音。
那么,先从Kaptcha开始。
一. Kaptcha官网( 猛击这里)
既然是轻量级实现,用起来自然简单。其实官网的Wiki上已经有简明的使用指南,我这里再用中文简单介绍。
最基本的实现方式总共涉及文件只有3个——需要添加的页面、web.xml和对应的kaptcha-2.3.2.jar文件。
用eclipse创建一个DynamicWebProject。
1. 先编写一个简单的页面,这里以jsp为例 (只显示body部分,其他部分略)
<body> This is a test for Kaptcha usage. <table> <tr> <td><img src="http://xeseo.blog.163.com/blog/kaptcha.jpg"></td> </tr> <tr> <td valign="top"> <form method="POST"> <br>Captcha: <input type="text" name="kaptchafield"> <input type="submit" name="submit"> </form> </td> </tr> </table> <br/><br/><br/><br/><br/> <% String captcha = (String)session.getAttribute(com.google.code.kaptcha.Constants.KAPTCHA_SESSION_KEY); String param = (String)request.getParameter("kaptchafield"); out.println("Parameter: " + param + " ? Session key: " + captcha + " : <br/>"); if(captcha!=null&¶m!=null) { if(captcha.equals(param)) { out.println("<b>true<b>"); }else out.println("<b>false</b>"); } %> </body> |
2. 修改web.xml,并把kaptcha-2.3.2.jar拷入WEB-INF/lib下
简单的加入处理kaptcha.jpg的Servlet
<servlet> <servlet-name>Kaptcha</servlet-name> <servlet-class>com.google.code.kaptcha.servlet.KaptchaServlet</servlet-class> </servlet> <servlet-mapping> <servlet-name>Kaptcha</servlet-name> <url-pattern>/kaptcha.jpg</url-pattern> </servlet-mapping> |
3. 验证
这里是用JS来做个验证,当然实际用的时候就用Servlet去做,但步骤是一样的。
a. 从session里面取出key为 com.google.code.kaptcha.Constants.KAPTCHA_SESSION_KEY 的值,其实就是图片中真正的code;
b. 取出用户实际输入的值;
c. 比较。。。
验证页面:
二. reCAPTCHA
官网( 猛击这里)
1. 先下载提供的三方包( 猛击这里),里面包含了该plugin的源码和jar文件
To be continued..