Captcha

Captcha这个词很搞,典型的网络缩写成的词语。原意是 Completely Automated Public Turing test to tell Computers and Humans Apart的缩写。发音近似"Capture"。中文的话可以叫验证码。
例如:


网上有很多开源的实现。详细实现先挖个坑,以后有空补上。这里暂时先记录下如何使用。
貌似最先提供开源验证码的是google?(错了请勿见怪。)所以找了两个Google的captcha来用。
一个是Kaptcha,是一个简单的captcha实现

Captcha - Edison - 飞


另一个是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&&param!=null)
    {
        if(captcha.equals(param))
        {
            out.println("<b>true<b>");
        }else
            out.println("<b>false</b>");
    }
    
%>
</body>
   用起来超级简单。在需要插入验证码的地方直接插入kaptcha.jpg的图片(名字必须与web.xml中定义的一致).


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..
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值