Google|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包吧
      com.github.axetkaptcha0.0.9

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

      2.配置kaptcha
      以项目使用spring为例,配置一个默认的Kaptcha的bean,如下
      kaptcha.code【Google|Google Kaptcha验证码生成的使用实例说明】noblackcom.google.code.kaptcha.impl.WaterRipplecom.google.code.kaptcha.impl.NoNoise90332545247,247,247247,247,247


      3.将验证码保存进session中
      将生成的验证码保存进session中,并输出由验证码生成的图片流到页面
      @Autowired private Producer captchaProducer; @RequestMapping(value = "https://www.it610.com/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 = "https://www.it610.com/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验证码背景颜色渐进   默认为Color.LIGHT_GRAY
      kaptcha.background.clear.to验证码背景颜色渐进默认为Color.WHITE
      kaptcha.image.width验证码图片宽度默认为200
      kaptcha.image.height验证码图片高度默认为50

      效果图如下 Google|Google Kaptcha验证码生成的使用实例说明
      文章图片

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

        推荐阅读