`
learnmore
  • 浏览: 601805 次
  • 性别: Icon_minigender_1
  • 来自: 上海
社区版块
存档分类
最新评论

验证码kaptcha

 
阅读更多
以下内容摘自:http://code.google.com/p/kaptcha/wiki/HowToUse

Basic use of kaptcha in your webapp is quite easy. All you need to do is add the jar to your project, make a reference to the kaptcha servlet in your web.xml and then check the servlet session for the generated kaptcha value and compare it to what the user submits on your form.

For those of you looking for an audio kaptcha solution, this product probably won't ever support that unless someone else wants to work on it. Sorry.

    Note: If you are currently using JCaptcha in the same .war file as Kaptcha, you will have a conflict with the image generation library. You must remove JCaptcha. See this issue for details.

Example

Included in the distribution is an example .war file for you to play with. Note that this .war file will only work with Java 1.5 and higher. For easiest setup, download Tomcat. I use 5.5.x and I download the 'Core' distribution.

Then, copy the kaptcha.war file into the webapps directory. Make sure it is named 'kaptcha.war'. Then, start up Tomcat. I type on Unix: ./bin/catalina.sh run or on Windows: bin/catalina.bat run.

Now, visit: http://localhost:8080/kaptcha/KaptchaExample.jsp

If you edit the web.xml file in the exploded kaptcha.war folder you can test changes to the ConfigParameters quite easily.
Details

Here are the details of how to integrate Kaptcha into your own application.

    Put the appropriate .jar file (depending on which JDK you are using) into the WEB-INF/lib directory of your .war file.

    Put the image tag into your page (checking that the path to the .jpg matches up with what is defined in your web.xml below for the url-pattern):

<form action="submit.action">
    <img src="kaptcha.jpg" /> <input type="text" name="kaptcha" value="" />
</form>

    Put the reference in your web.xml (checking that the url-pattern path matches up with what you put in your html fragment above):

<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>

    In your code that manages the submit action:

String kaptchaExpected = (String)request.getSession()
    .getAttribute(com.google.code.kaptcha.Constants.KAPTCHA_SESSION_KEY);
String kaptchaReceived = request.getParameter("kaptcha");

if (kaptchaReceived == null || !kaptchaReceived.equalsIgnoreCase(kaptchaExpected))
{
    setError("kaptcha", "Invalid validation code.");
}

    Make sure to start your JDK with -Djava.awt.headless=true

That is it!
Extra

If you love JQuery like I do, you can use it to easily solve the problem that happens when someone can't read the image that was generated for them. What this does is bind a function to the onclick handler for the img element so that when the image is clicked on, it will get reloaded. Note the use of the query string to append a random number to the end. This is because the browser has already cached the image and the query string makes it look like a new request.

<img src="/kaptcha" width="200" id="kaptchaImage" />
<script type="text/javascript">
    $(function(){
        $('#kaptchaImage').click(function () { $(this).attr('src', '/kaptcha.jpg?' + Math.floor(Math.random()*100) ); })
    });
</script>
<br /><small>Can't read the image? Click it to get a new one.</small>

If you want to get fancy, you can add an extra visual effect when refreshing the image. This example uses the fadeIn() effect when you click on it:

  $('#kaptchaImage').click(function () {
    $(this).hide()
      .attr('src', '/kaptcha.jpg?' + Math.floor(Math.random()*100) )
      .fadeIn();
  })

关于验证码的扩展配置:
Configuration is done through web.xml. All values can be left blank and a default value will be chosen.

Below is an example of the init-param you would add to your web.xml. If you want to set other variables, then you would add more init-param blocks.

<init-param>
    <param-name>kaptcha.border</param-name>
    <param-value>yes</param-value>
</init-param>

Note: This only works with the KaptchaServlet. SimpleServlet does not pay attention to the web.xml parameters.
Details

These values are stored in the com.google.code.kaptcha.Constants class.

Constant Description Default
kaptcha.border Border around kaptcha. Legal values are yes or no. yes
kaptcha.border.color Color of the border. Legal values are r,g,b (and optional alpha) or white,black,blue. black
kaptcha.border.thickness Thickness of the border around kaptcha. Legal values are > 0. 1
kaptcha.image.width Width in pixels of the kaptcha image. 200
kaptcha.image.height Height in pixels of the kaptcha image. 50
kaptcha.producer.impl The image producer. com.google.code.kaptcha.impl.DefaultKaptcha
kaptcha.textproducer.impl The text producer. com.google.code.kaptcha.text.impl.DefaultTextCreator
kaptcha.textproducer.char.string The characters that will create the kaptcha. abcde2345678gfynmnpwx
kaptcha.textproducer.char.length The number of characters to display. 5
kaptcha.textproducer.font.names A list of comma separated font names. Arial, Courier
kaptcha.textproducer.font.size The size of the font to use. 40px.
kaptcha.textproducer.font.color The color to use for the font. Legal values are r,g,b. black
kaptcha.textproducer.char.space The space between the characters 2
kaptcha.noise.impl The noise producer. com.google.code.kaptcha.impl.DefaultNoise
kaptcha.noise.color The noise color. Legal values are r,g,b. black
kaptcha.obscurificator.impl The obscurificator implementation. com.google.code.kaptcha.impl.WaterRipple
kaptcha.background.impl The background implementation. com.google.code.kaptcha.impl.DefaultBackground
kaptcha.background.clear.from Starting background color. Legal values are r,g,b. light grey
kaptcha.background.clear.to Ending background color. Legal values are r,g,b. white
kaptcha.word.impl The word renderer implementation. com.google.code.kaptcha.text.impl.DefaultWordRenderer
kaptcha.session.key The value for the kaptcha is generated and is put into the HttpSession. This is the key value for that item in the session. KAPTCHA_SESSION_KEY
kaptcha.session.date The date the kaptcha is generated is put into the HttpSession. This is the key value for that item in the session. KAPTCHA_SESSION_DATE
分享到:
评论

相关推荐

    谷歌验证码kaptcha安装与使用教程

    谷歌验证码(Google reCAPTCHA)是一种广泛用于防止网络爬虫和自动机器人滥用的验证机制,而Kaptcha则是Java实现的一个开源验证码生成库,它能够帮助开发者在自己的应用程序中轻松集成自定义的验证码功能,尤其适合...

    验证码 kaptcha之springboot用法.docx

    Google的Kaptcha是一个流行的验证码生成库,它提供了多种配置选项来生成高质量的图像验证码。在Spring Boot这样的轻量级框架中集成Kaptcha可以简化开发过程,提高应用程序的安全性。 首先,我们需要在项目中引入...

    登陆验证码kaptcha结合spring boot的用法详解

    在本文中,我们将深入探讨如何将登陆验证码kaptcha与Spring Boot整合,以便在Web应用程序中增强安全性。验证码在防止自动脚本、机器人和恶意爬虫的活动中起着至关重要的作用。Spring Boot以其轻量级、独立的特点,...

    SpringBoot整合Kaptcha(图形验证码)

    在本文中,我们将深入探讨如何将Kaptcha与Spring Boot整合以实现图形验证码的功能。Kaptcha是一个开源项目,用于生成各种类型的验证码,以防止自动化程序(如机器人)进行恶意操作。而Spring Boot是Java开发中的一个...

    非常漂亮 美观的验证码

    这是个 自己写的 可以改样式 的非常漂亮 美观的验证码

    谷歌验证码使用工具——kaptcha-2.3.2

    【谷歌验证码使用工具——kaptcha-2.3.2】是一款基于Java的开源验证码生成库,主要用于网站的身份验证,防止自动化的机器人或者恶意攻击者进行非法操作。kaptcha这个名字是"CAPTCHA"(Completely Automated Public ...

    kaptcha验证码框架(Java).zip

    在Java Web开发中,`Kaptcha`是一个非常流行的开源库,用于生成这种安全的随机验证码。`Kaptcha`框架简化了在Java应用中集成验证码的过程,尤其适用于防止自动注册、垃圾邮件发送等场景。 `Kaptcha`框架的核心特性...

    java验证码组件kaptcha使用方法

    -- 登录验证码Kaptcha配置 --&gt; &lt;servlet-name&gt;Kaptcha &lt;servlet-class&gt;com.google.code.kaptcha.servlet.KaptchaServlet&lt;/servlet-class&gt; &lt;!-- 配置Kaptcha生成器 --&gt; &lt;param-name&gt;kaptcha.producer.impl ...

    谷歌kaptcha验证码jar包

    谷歌Kaptcha验证码jar包是Google提供的一种用于网页安全验证的工具。Kaptcha,源自马来语“cap”,意为“图片”,是一种开源项目,主要用于生成难以被机器识别的图像验证码,以此来防止自动化程序(如机器人)对网站...

    vue+springboot+redis+kaptcha实现登录验证码

    本教程将介绍如何结合Vue.js前端框架、Spring Boot后端框架、Redis缓存服务以及Kaptcha验证码技术,实现一个前后端分离的登录页面验证码功能。这个组合可以提供高效、安全且用户友好的验证机制。 首先,Vue.js是一...

    kaptcha验证码小程序

    【kaptcha验证码小程序】 验证码(CAPTCHA)是一种用于验证用户是否为人类的自动化测试,它在互联网上广泛应用于注册、登录、评论等场景,防止恶意的自动机器人进行操作。kaptcha是一个开源的Java验证码生成库,它...

    谷歌验证码工具包kaptcha-2.3.2.jar

    谷歌的验证码生成工具包,下载解压,使用命令mvn install:install-file -Dfile=(你的路径)/kaptcha-2.3.2.jar -DgroupId=com.google.code.kaptcha -DartifactId=kaptcha -Dversion=2.3.2 -Dpackaging=jar安装到...

    kaptcha验证码

    《kaptcha验证码:Java平台上的高效解决方案》 验证码(CAPTCHA)作为一种防止自动化程序自动提交表单的安全机制,被广泛应用于网站登录、注册、评论等场景。在Java开发环境中,kaptcha是一个备受青睐的第三方插件...

    kaptcha 图片验证码

    《深入理解Kaptcha图片验证码在SpringMVC项目中的应用》 验证码作为一种常见的安全机制,用于防止恶意自动程序(如机器人)对网站进行非法操作,如批量注册、恶意投票等。Kaptcha是Google开源的一个用于生成图片...

    spring整合kaptcha验证码的实现

    本文将介绍spring整合kaptcha验证码的实现,主要通过讲解kaptcha的简介、开发工具及使用的核心技术、kaptcha两种使用方式、搭骨架、完善配置文件等几个方面,对spring整合kaptcha验证码的实现进行了详细的介绍。...

    kaptcha-2.3.2-google验证码插件

    【kaptcha-2.3.2-google验证码插件】是一个基于Java开发的验证码生成插件,主要用于网站的安全验证,防止恶意自动程序(如机器人)进行非法操作,如批量注册、频繁提交表单等。该插件是Google开发的,因此在安全性和...

    google的Kaptcha生成验证码

    谷歌的Kaptcha是一款广泛应用于网站安全验证的开源项目,它为用户提供了一种高效且可定制的验证码生成器。验证码的主要目的是防止自动化的机器人或者恶意软件进行非法操作,例如批量注册、垃圾评论等。Kaptcha因其...

    验证码例子(kaptcha插件的使用)

    在本案例中,我们将探讨如何使用`Kaptcha`插件来生成动态验证码。`Kaptcha`是一个开源Java库,专为生成验证码图像而设计,具有高度可配置性,可以轻松集成到Web应用中。 首先,我们需要了解`Kaptcha`插件的基本用法...

    Kaptcha验证码实现(实现了属性配置的方式,这种网上没有看到)

    Kaptcha是Google开发的一个开源Java库,专门用于生成复杂的图像验证码。这个库允许开发者自定义各种参数以适应不同网站的需求,而且提供了属性配置的方式,使得定制过程更为简便。 Kaptcha验证码实现的核心在于其...

    Kaptcha验证码类库及配置

    Kaptcha是一个Java实现的开源验证码生成库,它允许开发者轻松地在Web应用中集成自定义的验证码功能。Kaptcha以其简单易用和高度可配置性而受到开发者欢迎。 Kaptcha库的核心概念是生成具有一定的模糊性和噪声的图像...

Global site tag (gtag.js) - Google Analytics