`

使用kaptcha生成验证码

    博客分类:
  • java
 
阅读更多
听说kaptcha 能被破解
暂时只使用了spring mvc + kaptcha ,servlet暂时没有使用。待续

jar下载地址  http://code.google.com/p/kaptcha/
因为是用maven开发的,在网上找了一下 这个jar的GAV,没有找到,懒得找了,直接放nexus中了。


spring配置文件
<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
	xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 
	xmlns:context="http://www.springframework.org/schema/context"
	xmlns:tx="http://www.springframework.org/schema/tx"
	xmlns:aop="http://www.springframework.org/schema/aop"
	xmlns:task="http://www.springframework.org/schema/task"
	xsi:schemaLocation="http://www.springframework.org/schema/beans 	
				http://www.springframework.org/schema/beans/spring-beans-3.0.xsd
				http://www.springframework.org/schema/context 
				http://www.springframework.org/schema/context/spring-context-3.0.xsd
				http://www.springframework.org/schema/aop   
				http://www.springframework.org/schema/aop/spring-aop-3.0.xsd 
				http://www.springframework.org/schema/tx 
				http://www.springframework.org/schema/tx/spring-tx-3.0.xsd
				http://www.springframework.org/schema/task  
                http://www.springframework.org/schema/task/spring-task-3.0.xsd">

   <bean id="captchaProducer" class="com.google.code.kaptcha.impl.DefaultKaptcha">
		<property name="config">
			<bean class="com.google.code.kaptcha.util.Config">
				<constructor-arg>
					<props>
						<prop key="kaptcha.border">no</prop>
						<prop key="kaptcha.border.color">105,179,90</prop>
						<prop key="kaptcha.textproducer.font.color">red</prop>
						<prop key="kaptcha.image.width">250</prop>
						<prop key="kaptcha.textproducer.font.size">90</prop>
						<prop key="kaptcha.image.height">90</prop>
						<prop key="kaptcha.session.key">code</prop>
						<prop key="kaptcha.textproducer.char.length">4</prop>
						<prop key="kaptcha.textproducer.font.names">宋体,楷体,微软雅黑
</prop>
					</props>
				</constructor-arg>
			</bean>
		</property>
	</bean>
</beans>


controller代码

import java.awt.image.BufferedImage;
import javax.imageio.ImageIO;
import javax.servlet.ServletOutputStream;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.servlet.ModelAndView;
import com.google.code.kaptcha.Constants;
import com.google.code.kaptcha.Producer;

@Controller
@RequestMapping("/code")
public class CodeController {
	
	private Producer captchaProducer = null;

	@Autowired
	public void setCaptchaProducer(Producer captchaProducer) {
		this.captchaProducer = captchaProducer;
	}

	@RequestMapping("/captcha-image")
	public ModelAndView handleRequest(HttpServletRequest request, HttpServletResponse response) throws Exception {

		response.setDateHeader("Expires", 0);
		// Set standard HTTP/1.1 no-cache headers.
		response.setHeader("Cache-Control", "no-store, no-cache, must-revalidate");
		// Set IE extended HTTP/1.1 no-cache headers (use addHeader).
		response.addHeader("Cache-Control", "post-check=0, pre-check=0");
		// Set standard HTTP/1.0 no-cache header.
		response.setHeader("Pragma", "no-cache");
		// return a jpeg
		response.setContentType("image/jpeg");
		// create the text for the image
		String capText = captchaProducer.createText();
		// store the text in the session
		request.getSession().setAttribute(Constants.KAPTCHA_SESSION_KEY, capText);
		// create the image with the text
		BufferedImage bi = captchaProducer.createImage(capText);
		ServletOutputStream out = response.getOutputStream();
		// write the data out
		ImageIO.write(bi, "jpg", out);
		try {
			out.flush();
		} finally {
			out.close();
		}
		return null;
	}

}


后台拿到这个验证码的字符串
String sessionCode =(String)request.getSession().getAttribute(com.google.code.kaptcha.Constants.KAPTCHA_SESSION_KEY);



前台调用,引入的jquery
	$(function(){
		$("#imgCode").click(function(){
			$("#imgCode").attr("src","/code/captcha-image?a="+Math.floor(Math.random() * 100));
		})
	})


html
<img id="imgCode" src="/code/captcha-image" width="100" height="40"  />


分享到:
评论

相关推荐

    google的Kaptcha生成验证码

    谷歌的Kaptcha是一款广泛应用于网站安全验证的开源项目,它为用户提供了一种...通过深入理解和使用kaptcha-2.3.2中的资源,你将能够为你的网站构建出高效且安全的验证码系统,有效抵挡自动化攻击,保障用户数据的安全。

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

    2. 创建验证码服务:编写一个服务类,使用Kaptcha生成验证码,并将其文本存储到Redis,同时返回图像给前端。 3. 前端Vue组件:创建一个Vue组件,用于显示验证码图片,并提供刷新验证码和提交验证码的功能。使用...

    kaptcha快速生成验证码

    使用kaptcha生成验证码的作用:进行人机校验--防止机器脚本,自动大量注册用户。 1.Kaptcha是谷歌开源的可高度配置的实用验证码生成工具。 2.通过Kaptcha可阻拦大多数机器人脚本操作。 3.kaptcha典型殷勇于注册、...

    使用Kaptcha生成随机码

    使用Kaptcha生成随机码的一个demo

    kaptcha验证码生成jar包后台配置源代码

    kaptcha生成验证码的作用:进行人机校验--防止机器脚本自动大量注册用户。 1、Kaptcha是谷歌开源的可高度配置的实用验证码生成工具。 2、过Kaptcha可阻拦大多数机器人脚本操作。 3、kaptcha典型殷用于注册、登录、...

    SpringBoot整合Kaptcha(图形验证码)

    Kaptcha生成的验证码通常包含随机生成的字母和数字组合,这些组合被设计得难以由机器识别,但人类可以轻松阅读。验证码的主要目的是保护网站免受自动注册、恶意登录和其他非法活动的攻击。 要在Spring Boot项目中...

    kaptcha-2.3.2 生成验证码

    `kaptcha生成验证码例子 - fonter - ITeye技术网站_files` 文件夹可能包含了网页展示验证码时所需的图片和其他资源。 要使用`kaptcha`,首先需要在项目中引入依赖,如果是Maven项目,可以在pom.xml文件中添加`...

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

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

    kaptcha验证码小程序

    4. **安全性**:kaptcha生成的验证码具有一定的安全级别,能够有效阻止大部分自动化脚本的攻击,但需要注意的是,随着技术的发展,更高级的验证码如谷歌的reCAPTCHA等已经成为更安全的选择。 5. **简单易用**:在...

    Spring boot如何集成kaptcha并生成验证码

    在上面的控制器中,我们使用 Kaptcha 生成验证码,并将其保存到 session 中。然后,我们将验证码写入到响应的输出流中,以便在客户端显示。 小结 在本文中,我们介绍了如何在 Spring Boot 项目中集成 Kaptcha 并...

    kaptcha 图片验证码

    3. 创建Controller:创建一个控制器类,提供一个接口用于生成验证码图片,该接口返回类型通常为“image/jpeg”。 ```java @Controller public class CaptchaController { @Autowired private KaptchaProducer ...

    kaptcha验证码框架(Java).zip

    4. **生成验证码**:使用`KaptchaProducer`的`createText()`方法生成验证码文本,`createImage()`方法生成对应的图片。 5. **保存验证码**:将生成的验证码文本存入用户的Session中,作为后续验证的依据。 6. **...

    kaptcha.jar

    3. **使用kaptcha生成验证码** - **集成**:将kaptcha.jar添加到项目类路径,然后通过import引入相关类。 - **配置**:创建Config对象,设置验证码参数,如文本长度、字体、颜色等。 - **生成**:使用Generator...

    kaptcha验证码生成工具

    3. **生成验证码**:使用`Kaptcha`工厂类创建一个验证码生成器实例,调用其`create()`方法生成验证码图像和相应的文本。 4. **保存和显示验证码**:将生成的图像保存到服务器的临时目录,并将图像的URL传递给客户端...

    kaptcha开源验证码

    Kaptcha的核心类`DefaultKaptcha`负责生成验证码,它通过生成随机文本和图像来创建独一无二的验证码。这个过程包括以下几个步骤: 1. **生成随机文本**:Kaptcha首先生成一串随机字符,通常包含字母和数字,长度可...

    spring整合kaptcha验证码的实现

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

    kaptcha验证码

    通常,我们在生成验证码时将其值保存到session,然后在用户提交表单时,对比用户输入的验证码与session中的值是否一致,以判断其有效性。 总的来说,kaptcha作为一款优秀的Java验证码插件,以其简单的集成方式和...

    kaptcha-0.0.9.jar:生成验证码必要的jar包使用方便,代码简单

    使用kaptcha生成图片验证码 生成图片验证码必须要引用到的包,下载后引入项目即可 依赖的jar包 kaptcha-0.0.9.jar filters-2.0.235-1.jar @RequestMapping("/kaptcha.jpg") public ModelAndView handleRequest...

    谷歌kaptcha验证码jar包

    接下来,通过调用Kaptcha对象的方法生成验证码图片,并将其保存或显示在网页上。同时,还需要将生成的验证码文本存储在一个安全的地方,例如服务器的内存中或数据库中,以便后续的用户输入验证。 Kaptcha提供了一些...

Global site tag (gtag.js) - Google Analytics