听说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" />
分享到:
相关推荐
谷歌的Kaptcha是一款广泛应用于网站安全验证的开源项目,它为用户提供了一种...通过深入理解和使用kaptcha-2.3.2中的资源,你将能够为你的网站构建出高效且安全的验证码系统,有效抵挡自动化攻击,保障用户数据的安全。
2. 创建验证码服务:编写一个服务类,使用Kaptcha生成验证码,并将其文本存储到Redis,同时返回图像给前端。 3. 前端Vue组件:创建一个Vue组件,用于显示验证码图片,并提供刷新验证码和提交验证码的功能。使用...
使用kaptcha生成验证码的作用:进行人机校验--防止机器脚本,自动大量注册用户。 1.Kaptcha是谷歌开源的可高度配置的实用验证码生成工具。 2.通过Kaptcha可阻拦大多数机器人脚本操作。 3.kaptcha典型殷勇于注册、...
使用Kaptcha生成随机码的一个demo
kaptcha生成验证码的作用:进行人机校验--防止机器脚本自动大量注册用户。 1、Kaptcha是谷歌开源的可高度配置的实用验证码生成工具。 2、过Kaptcha可阻拦大多数机器人脚本操作。 3、kaptcha典型殷用于注册、登录、...
Kaptcha生成的验证码通常包含随机生成的字母和数字组合,这些组合被设计得难以由机器识别,但人类可以轻松阅读。验证码的主要目的是保护网站免受自动注册、恶意登录和其他非法活动的攻击。 要在Spring Boot项目中...
`kaptcha生成验证码例子 - fonter - ITeye技术网站_files` 文件夹可能包含了网页展示验证码时所需的图片和其他资源。 要使用`kaptcha`,首先需要在项目中引入依赖,如果是Maven项目,可以在pom.xml文件中添加`...
【谷歌验证码使用工具——kaptcha-2.3.2】是一款基于Java的开源验证码生成库,主要用于网站的身份验证,防止自动化的机器人或者恶意攻击者进行非法操作。kaptcha这个名字是"CAPTCHA"(Completely Automated Public ...
4. **安全性**:kaptcha生成的验证码具有一定的安全级别,能够有效阻止大部分自动化脚本的攻击,但需要注意的是,随着技术的发展,更高级的验证码如谷歌的reCAPTCHA等已经成为更安全的选择。 5. **简单易用**:在...
在上面的控制器中,我们使用 Kaptcha 生成验证码,并将其保存到 session 中。然后,我们将验证码写入到响应的输出流中,以便在客户端显示。 小结 在本文中,我们介绍了如何在 Spring Boot 项目中集成 Kaptcha 并...
3. 创建Controller:创建一个控制器类,提供一个接口用于生成验证码图片,该接口返回类型通常为“image/jpeg”。 ```java @Controller public class CaptchaController { @Autowired private KaptchaProducer ...
4. **生成验证码**:使用`KaptchaProducer`的`createText()`方法生成验证码文本,`createImage()`方法生成对应的图片。 5. **保存验证码**:将生成的验证码文本存入用户的Session中,作为后续验证的依据。 6. **...
3. **使用kaptcha生成验证码** - **集成**:将kaptcha.jar添加到项目类路径,然后通过import引入相关类。 - **配置**:创建Config对象,设置验证码参数,如文本长度、字体、颜色等。 - **生成**:使用Generator...
3. **生成验证码**:使用`Kaptcha`工厂类创建一个验证码生成器实例,调用其`create()`方法生成验证码图像和相应的文本。 4. **保存和显示验证码**:将生成的图像保存到服务器的临时目录,并将图像的URL传递给客户端...
Kaptcha的核心类`DefaultKaptcha`负责生成验证码,它通过生成随机文本和图像来创建独一无二的验证码。这个过程包括以下几个步骤: 1. **生成随机文本**:Kaptcha首先生成一串随机字符,通常包含字母和数字,长度可...
本文将介绍spring整合kaptcha验证码的实现,主要通过讲解kaptcha的简介、开发工具及使用的核心技术、kaptcha两种使用方式、搭骨架、完善配置文件等几个方面,对spring整合kaptcha验证码的实现进行了详细的介绍。...
通常,我们在生成验证码时将其值保存到session,然后在用户提交表单时,对比用户输入的验证码与session中的值是否一致,以判断其有效性。 总的来说,kaptcha作为一款优秀的Java验证码插件,以其简单的集成方式和...
使用kaptcha生成图片验证码 生成图片验证码必须要引用到的包,下载后引入项目即可 依赖的jar包 kaptcha-0.0.9.jar filters-2.0.235-1.jar @RequestMapping("/kaptcha.jpg") public ModelAndView handleRequest...
接下来,通过调用Kaptcha对象的方法生成验证码图片,并将其保存或显示在网页上。同时,还需要将生成的验证码文本存储在一个安全的地方,例如服务器的内存中或数据库中,以便后续的用户输入验证。 Kaptcha提供了一些...