Google Kaptcha验证码生成的使用实例说明

目录
  • Kaptcha是什么?
  • 怎么使用Kaptcha?
    • 1.首先下载jar包
    • 2.配置kaptcha
    • 3.将验证码保存进session中
    • 4.验证码校验
  • Kaptcha验证码配置
  • 效果图如下

Kaptcha是什么?

kaptcha 是谷歌开源的非常实用的验证码生成工具,基于SimpleCaptcha的开源项目。使用Kaptcha 生成验证码十分简单并且参数可以进行自定义。只需添加jar包配置下就可以使用,通过配置,可以自己定义验证码大小、颜色、显示的字符等等。下面就来讲一下如何使用kaptcha生成验证码以及在服务器端取出验证码进行校验。

怎么使用Kaptcha?

1.首先下载jar包

要项目使用Kaptcha肯定要依赖kaptcha的jar,maven项目的话直接加入如下依赖,非maven项目就自己下载jar包吧

<dependency>
<groupId>com.github.axet</groupId>
<artifactId>kaptcha</artifactId>
<version>0.0.9</version>
</dependency>

官方下载链接:https://code.google.com/archive/p/kaptcha/downloads,当然你得翻墙哈

2.配置kaptcha

以项目使用spring为例,配置一个默认的Kaptcha的bean,如下

<bean id="captchaProducer" class="com.google.code.kaptcha.impl.DefaultKaptcha" scope="singleton">
	    <property name="config">
	        <bean class="com.google.code.kaptcha.util.Config">
	            <constructor-arg>
	                <props>
	                	<prop key="kaptcha.session.key">kaptcha.code</prop>
	                	<!-- 无边框 -->
	                    <prop key="kaptcha.border">no</prop>
	                    <prop key="kaptcha.textproducer.font.color">black</prop>
	                    <!-- 渲染效果:水纹:WaterRipple;鱼眼:FishEyeGimpy;阴影:ShadowGimpy -->
	                    <prop key="kaptcha.obscurificator.impl">com.google.code.kaptcha.impl.WaterRipple</prop>
	                    <!-- 不要噪点 -->
	                    <prop key="kaptcha.noise.impl">com.google.code.kaptcha.impl.NoNoise</prop>
	                    <prop key="kaptcha.image.width">90</prop>
	                    <prop key="kaptcha.image.height">33</prop>
	                    <prop key="kaptcha.textproducer.font.size">25</prop>
	                    <prop key="kaptcha.textproducer.char.length">4</prop>
	                    <prop key="kaptcha.textproducer.char.space">5</prop>
	                    <!-- 和登录框背景颜色一致 -->
	                    <prop key="kaptcha.background.clear.from">247,247,247</prop>
	                    <prop key="kaptcha.background.clear.to">247,247,247</prop>
	                </props>
	            </constructor-arg>
	        </bean>
	    </property>
	</bean>

3.将验证码保存进session中

将生成的验证码保存进session中,并输出由验证码生成的图片流到页面

@Autowired
	private Producer captchaProducer;
	@RequestMapping(value = "/kaptchaImage", method = RequestMethod.GET)
    public void kaptcha(HttpServletRequest req, HttpServletResponse rsp) {
		ServletOutputStream out = null;
		try {
	        HttpSession session = req.getSession();
	        rsp.setDateHeader("Expires", 0);
	        rsp.setHeader("Cache-Control", "no-store, no-cache, must-revalidate");
	        rsp.addHeader("Cache-Control", "post-check=0, pre-check=0");
	        rsp.setHeader("Pragma", "no-cache");
	        rsp.setContentType("image/jpeg");
	        String capText = captchaProducer.createText();
	        session.setAttribute(Constants.KAPTCHA_SESSION_KEY, capText);
	        BufferedImage image = captchaProducer.createImage(capText);
	        out = rsp.getOutputStream();
	        ImageIO.write(image, "jpg", out);
	        out.flush();
        }catch(IOException e)
		{
			throw new SystemException(e);
		} finally {
            try {
				out.close();
			} catch (IOException e) {
				throw new SystemException(e);
			}
        }
    }

4.验证码校验

校验用户输入的验证码和保存进session的是否一直,达到验证目的

@RequestMapping(value = "/login", method = RequestMethod.POST, produces = "text/html; charset=utf-8")
	public String userLogin(String accountName, String password, String captcha, Boolean rememberMe, HttpServletRequest request) {
		 //从session中取出kaptcha生成的验证码text值
	        String expected = (String) request.getSession().getAttribute(Constants.KAPTCHA_SESSION_KEY);
	        //获取用户页面输入的验证码
	        if(!captcha.equalsIgnoreCase(expected))
	        {
	        	request.setAttribute("error", "验证码错误!");
				return "/login";
	        }else
	        {
                    xxxx验证码后的后续逻辑
                 }
}

Kaptcha验证码配置

kaptcha.border  是否有边框  默认为true  我们可以自己设置yes,no

kaptcha.border.color   边框颜色   默认为Color.BLACK

kaptcha.border.thickness  边框粗细度  默认为1

kaptcha.producer.impl   验证码生成器  默认为DefaultKaptcha

kaptcha.textproducer.impl   验证码文本生成器  默认为DefaultTextCreator

kaptcha.textproducer.char.string   验证码文本字符内容范围  默认为abcde2345678gfynmnpwx

kaptcha.textproducer.char.length   验证码文本字符长度  默认为5

kaptcha.textproducer.font.names    验证码文本字体样式  默认为new Font("Arial", 1, fontSize), new Font("Courier", 1, fontSize)

kaptcha.textproducer.font.size   验证码文本字符大小  默认为40

kaptcha.textproducer.font.color  验证码文本字符颜色  默认为Color.BLACK

kaptcha.textproducer.char.space  验证码文本字符间距  默认为2

kaptcha.noise.impl    验证码噪点生成对象  默认为DefaultNoise

kaptcha.noise.color   验证码噪点颜色   默认为Color.BLACK

kaptcha.obscurificator.impl   验证码样式引擎  默认为WaterRipple

kaptcha.word.impl   验证码文本字符渲染   默认为DefaultWordRenderer

kaptcha.background.impl   验证码背景生成器   默认为DefaultBackground

kaptcha.background.clear.from   验证码背景颜色渐进 &nbsp; 默认为Color.LIGHT_GRAY

kaptcha.background.clear.to   验证码背景颜色渐进   默认为Color.WHITE

kaptcha.image.width   验证码图片宽度  默认为200

kaptcha.image.height  验证码图片高度  默认为50

效果图如下

以上就是Google Kaptcha验证码的使用实例说明的详细内容,更多关于Google Kaptcha验证码使用的资料请关注我们其它相关文章!

(0)

相关推荐

  • kaptcha验证码使用方法详解

    本文为大家分享了kaptcha验证码的使用方法,供大家参考,具体内容如下 1.首先在pom.xml文件中导入Maven依赖 <dependency> <groupId>com.github.penggle</groupId> <artifactId>kaptcha</artifactId> <version>2.3.2</version> </dependency> 2.在web.xml文件中配置一个servl

  • SpringMvc使用GoogleKaptcha生成验证码

    前言:google captcha 是google生成验证码的一个工具类,其原理是将随机生成字符串保存到session中,同时以图片的形式返回给页面,之后前台页面提交到后台进行对比. 1.jar包准备 官方提供的pom应该是 <dependency> <groupId>com.google.code.kaptcha</groupId> <artifactId>kaptcha</artifactId> <version>2.3.2<

  • 使用google.kaptcha来生成图片验证码的实现方法

    1.导入依赖 <dependency> <groupId>com.google.code</groupId> <artifactId>kaptcha</artifactId> <version>2.3.2</version> </dependency> 图片展示如下,具体jar包自己下载 jar包下载完可以使用就很完美,如果导入之后报错不能使用,则手动添加jar,进入jar所在的位置,然后执行下面命令 mvn

  • Google Kaptcha 框架实现登录验证码功能(SSM 和 SpringBoot)

    一.效果图: 二.导入 jar 包 1.由于这是大神写好封装起来的一个框架,所有我们使用前得先下载相关的 jar 包 第一种:maven <!-- 验证码 --> <!-- https://mvnrepository.com/artifact/com.github.penggle/kaptcha --> <dependency>     <groupId>com.github.penggle</groupId>     <artifactI

  • Spring MVC中使用Google kaptcha验证码的方法详解

    前言 众所周知验证码是抵抗批量操作和恶意登录最有效的方式之一,我们在每天或许都会遇到,验证码从产生到现在已经衍生出了很多分支.方式.google kaptcha 是一个非常实用的验证码生成类库. 通过灵活的配置生成各种样式的验证码,并将生成的验证码字符串放到 HttpSession 中,方便获取进行比较. 本文描述在 spring mvc 下快速的将 google kaptcha 集成到项目中(单独使用的话在 web.xml 中配置 KaptchaServlet).下面话不多说了,来一起看看详细

  • Google Kaptcha验证码生成的使用实例说明

    目录 Kaptcha是什么? 怎么使用Kaptcha? 1.首先下载jar包 2.配置kaptcha 3.将验证码保存进session中 4.验证码校验 Kaptcha验证码配置 效果图如下 Kaptcha是什么? kaptcha 是谷歌开源的非常实用的验证码生成工具,基于SimpleCaptcha的开源项目.使用Kaptcha 生成验证码十分简单并且参数可以进行自定义.只需添加jar包配置下就可以使用,通过配置,可以自己定义验证码大小.颜色.显示的字符等等.下面就来讲一下如何使用kaptcha

  • java随机验证码生成实现实例代码

    java随机验证码生成实现实例代码 摘要: 在项目中有很多情况下都需要使用到随机验证码,这里提供一个java的随机验证码生成方案,可以指定难度,生成的验证码可以很方便的和其他组件搭配 之前要使用一个生成随机验证码的功能,在网上找了一下,有很多的人提出了不同的解决方案,但是很多人都使用了com.sun.image.这个包或者子包里面的类,而这个包结构下面的类都是不推荐使用的,我们应该依赖于java.或者javax.这些包结构下面的类,否则将来的可移植性就很不好(比如换成IBM的JDK就不行了),但

  • Android栗子の图片验证码生成实例代码

    废话不多说了,下面一段代码给大家分享android 生成栗子图片验证码功能,具体代码如下所示: import java.util.Random; import android.graphics.Bitmap; import android.graphics.Bitmap.Config; import android.graphics.Canvas; import android.graphics.Color; import android.graphics.Paint; public class

  • springboot整合kaptcha验证码的示例代码

    前言: 关于kaptcha简介以及spring整合kaptcha,我在另一篇文章中已详细讲解,请参考:spring整合kaptcha验证码. 本文将介绍springboot整合kaptcha的两种方式. 开发工具及技术: 1.idea 2017 2.springboot 2.0.2 3.kaptcha 正式开始: 方式一:通过kaptcha.xml配置 1.用idea新建一个spring Initializr 2.添加kaptcha的依赖: <!-- kaptcha验证码 --> <de

  • SpringBoot集成kaptcha验证码

    本文实例为大家分享了SpringBoot集成kaptcha验证码的具体代码,供大家参考,具体内容如下 1.kaptcha相关介绍 Kaptcha是一个基于SimpleCaptcha的验证码开源项目. 2.集成方案 ①pom.xml中配置依赖 <!-- 验证码--> <dependency> <groupId>com.github.penggle</groupId> <artifactId>kaptcha</artifactId> &l

  • spring整合kaptcha验证码的实现

    kaptcha简介: kaptcha是一个很有用的验证码生成工具,由于它有许多可配置项,所以用它可以简单快捷的生成各式各样的验证码. 开发工具及使用的核心技术: 1.eclipse 2.mybatis 3.spring 4.springmvc 5.kaptcha 本文将介绍kaptcha两种使用方式: 方式一:在 spring-kaptcha.xml 中配置 方式二:在 web.xml 中配置 正式开始: 一.搭骨架 1.添加依赖: <!-- 验证码 --> <dependency>

随机推荐