Kaptcha:google自动生成验证码组件

  kaptcha的使用比较方便,只需添加jar包依赖之后简单地配置就可以使用了

  kaptcha所有配置都可以通过web.xml来完成,如果你的项目中使用了Spring MVC,那么则有另外的一种方式来实现

  1. <!-- google验证码 -->
  2. <dependency>
  3. <groupId>com.github.axet</groupId>
  4. <artifactId>kaptcha</artifactId>
  5. <version>0.0.9</version>
  6. </dependency>

springmvc项目中使用:

  1 在spring-mvc.xml中进行配置:

    kaptcha的参数介绍:http://blog.csdn.net/qq_21120027/article/details/52129066

  1. <!-- 配置google验证码 -->
  2. <bean name="producer" class="com.google.code.kaptcha.impl.DefaultKaptcha">
  3. <property name="config">
  4. <bean class="com.google.code.kaptcha.util.Config">
  5. <constructor-arg>
  6. <props>
  7. <prop key="kaptcha.border">no</prop>
  8. <prop key="kaptcha.textproducer.font.color">black</prop>
  9. <prop key="kaptcha.textproducer.char.space">5</prop>
  10. <prop key="kaptcha.textproducer.char.length">5</prop>
  11. </props>
  12. </constructor-arg>
  13. </bean>
  14. </property>
  15. </bean>

  2 controller中生成验证码:

  1. @RequestMapping("/kaptcha.jpg")
  2. public void kaptcha(HttpServletResponse response) throws IOException{
  3.  
  4. response.setHeader("Cache-Control", "no-store,no-cache");
  5. response.setContentType("image/jpeg");
  6.  
  7. //生成文字
  8. String text = producer.createText();
  9. //生成图片
  10. BufferedImage image = producer.createImage(text);
  11.  
  12. //保存到shiro session中
  13. SecurityUtils.getSubject().getSession().setAttribute(Constants.KAPTCHA_SESSION_KEY, text);
  14.  
  15. ServletOutputStream out = response.getOutputStream();
  16. ImageIO.write(image, "jpg", out);
  17. out.flush();
  18.  
  19. }

  3 login页面:

  1. <div class="form-group">
  2. <input type="text" class="form-control" placeholder="验证码" v-model="user.kaptcha">
  3. </div>
  4. <div class="form-group" text-left>
  5. <img id="kaptcha" :src="kaptcha.jpg" alt="验证码" @click="refreshCode" style="cusor:pointer;"/>
  6. <a href="#" @click.prevent="refreshCode">点击刷新</a>
  7. </div>

  4 点击刷新验证码:

  1. refreshCode: function(){
  2.  
  3. $("#kaptcha").attr('src', vm.kaptcha);
  4. }

使用验证码需要注意的地方:

  无论哪一项验证错误,都必须刷新验证码,否则验证码会过时或者被暴力破解

Kaptcha的更多相关文章

  1. Java实现验证码制作之一Kaptcha验证码

    Kaptcha验证码 是google提供的验证码插件,使用起来相对简单,设置的干扰线以及字体扭曲不易让其他人读取破解. 这里我们需要 导入一个 kaptcha-2.3.jar  下载地址:http:/ ...

  2. java验证码组件kaptcha使用方法

    使用方法: 项目中导入kaptcha-2.3.jar包在web.xml里面新增: <!-- 登陆验证码Kaptcha -->    <servlet>        <s ...

  3. Sping mvc 环境下使用kaptcha 生成验证码

    一.kaptcha 的简介 kaptcha 是一个非常实用的验证码生成工具.有了它,你可以生成各种样式的验证码,因为它是可配置的.kaptcha工作的原理是调用 com.google.code.kap ...

  4. 使用kaptcha生成验证码

    原文:http://www.cnblogs.com/xdp-gacl/p/4221848.html kaptcha是一个简单好用的验证码生成工具,通过配置,可以自己定义验证码大小.颜色.显示的字符等等 ...

  5. kaptcha随机验证码的使用详解,超实用

    效果图: 官方地址:https://code.google.com/p/kaptcha/w/list 1.把下载的kaptcha-2.3.2.jar添加到lib中 2.配置web.xml增加servl ...

  6. 转】使用kaptcha生成验证码

    原博文出自于: http://www.cnblogs.com/xdp-gacl/p/4221848.html 感谢! kaptcha是一个简单好用的验证码生成工具,通过配置,可以自己定义验证码大小.颜 ...

  7. kaptcha验证码插件的使用

    kaptcha 是一个非常实用的验证码生成工具.有了它,你可以生成各种样式的验证码,因为它是可配置的.kaptcha工作的原理是调用 com.google.code.kaptcha.servlet.K ...

  8. 推荐一款java的验证码组件——kaptcha

    使用方法: 项目中导入kaptcha-2.3.jar包 在web.xml里面新增:   <!-- 登陆验证码Kaptcha --> <servlet> <servlet- ...

  9. kaptcha小案例(转)

    使用kaptcha生成验证码 kaptcha是一个简单好用的验证码生成工具,通过配置,可以自己定义验证码大小.颜色.显示的字符等等.下面就来讲一下如何使用kaptcha生成验证码以及在服务器端取出验证 ...

  10. 利用谷歌 kaptcha 进行验证码生成

    package main.com.smart.controller; import com.google.code.kaptcha.Producer; import main.com.smart.ut ...

随机推荐

  1. immutable-styles 新的css style 开发模式

    immutable-styles 是一个开源的library,可以方便我们开发强壮以及可预测的web 界面,不用担心其他css 的影响 特性 编译时错误提示 防止css 覆盖 分离破坏点 严格继承 重 ...

  2. tile38 roaming-geofences 试用

    tile38 支持动态实时的移动对象的数据监控 环境准备 docker-compose 文件 version: "3" services:  app:    image: tile ...

  3. apache geode 试用

    使用docker 运行,文档参考的官方的5 分钟学习文档 拉取镜像 docker pull apachegeode/geode 启动 docker run -it -p 10334:10334 -p ...

  4. “更新时间”字段的:ON UPDATE CURRENT_TIMESTAMP 含义

    "更新时间"字段的:ON UPDATE CURRENT_TIMESTAMP 含义: 表示在数据库数据有更新的时候UPDATE_TIME的时间会自动更新(如果数据库数据值没有变化的话 ...

  5. pycharm Process finished with exit code (0xC0000005)

    pycharm  Process finished with exit code  (0xC0000005)解决办法 上次报过这个错误,是在安装浏览器时发现的,报过同样的错误.按当时的方法,以为切地解 ...

  6. laravel 事务处理

    //開啟事務 DB::beginTransaction(); try { //賬號密碼同步到後台登錄表 $user = new \App\Models\User; $user->name = $ ...

  7. C# 中数据类型以及结构

    值类型:int.double.char.bool...,结构. 引用类型:类(string).接口.数组 Class1.cs using System; using System.Collection ...

  8. Linux rcp命令详解

    Linux rcp命令 Linux rcp命令用于复制远程文件或目录. rcp指令用在远端复制文件或目录,如同时指定两个以上的文件或目录,且最后的目的地是一个已经存在的目录,则它会把前面指定的所有文件 ...

  9. 转:Oracle 执行计划(Explain Plan) 说明

    Oracle 执行计划(Explain Plan) 说明 原贴地址:http://blog.csdn.net/tianlesoftware/article/details/5827245   如果要分 ...

  10. FastReport问题整理(http://129.sqdj.gov.cn/?p=77)

    1.FastReport中如果访问报表中的对象?可以使用FindObject方法.TfrxMemoView(frxReport1.FindObject(’memo1′)).Text:=’FastRep ...