谷歌验证码生成工具类

  • 1、引入依赖
  • 2、验证码配置类
  • 3、controller层
  • 4、测试
  • 5、目录结构

1、引入依赖

<!-- google kaptcha依赖 -->
<dependency><groupId>com.github.axet</groupId><artifactId>kaptcha</artifactId><version>0.0.9</version>
</dependency>

2、验证码配置类

package com.tang.config;import com.google.code.kaptcha.impl.DefaultKaptcha;
import com.google.code.kaptcha.util.Config;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;import java.util.Properties;/**** 验证码配置类** @program: yeb* @description:* @author: xiaokaixin* @create: 2021-10-18 12:43**/@Configuration
public class CaptchaConfig {@Beanpublic DefaultKaptcha defaultKaptcha(){//验证码生成器DefaultKaptcha defaultKaptcha=new DefaultKaptcha();//配置Properties properties = new Properties();//是否有边框properties.setProperty("kaptcha.border", "yes");//设置边框颜色properties.setProperty("kaptcha.border.color", "105,179,90");//边框粗细度,默认为1// properties.setProperty("kaptcha.border.thickness","1");//验证码properties.setProperty("kaptcha.session.key","code");//验证码文本字符颜色 默认为黑色properties.setProperty("kaptcha.textproducer.font.color", "blue");//设置字体样式properties.setProperty("kaptcha.textproducer.font.names", "宋体,楷体,微软雅黑");//字体大小,默认40properties.setProperty("kaptcha.textproducer.font.size", "30");//验证码文本字符内容范围 默认为abced2345678gfynmnpwx// properties.setProperty("kaptcha.textproducer.char.string", "");//字符长度,默认为5properties.setProperty("kaptcha.textproducer.char.length", "4");//字符间距 默认为2properties.setProperty("kaptcha.textproducer.char.space", "4");//验证码图片宽度 默认为200properties.setProperty("kaptcha.image.width", "100");//验证码图片高度 默认为40properties.setProperty("kaptcha.image.height", "40");Config config = new Config(properties);defaultKaptcha.setConfig(config);return defaultKaptcha;}}

3、controller层

生成验证码并响应给客户端并且把验证码的信息保存到session中

package com.tang.controller;import com.google.code.kaptcha.impl.DefaultKaptcha;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RestController;import javax.imageio.ImageIO;
import javax.servlet.ServletOutputStream;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import java.awt.image.BufferedImage;
import java.io.IOException;/*** 验证码* @program: yeb* @description:* @author: xiaokaixin* @create: 2021-10-18 12:48**/
@RestController
public class CaptchaController {@Autowiredprivate DefaultKaptcha defaultKaptcha;@GetMapping(value = "/captcha",produces = "image/jpeg")public void captcha(HttpServletRequest request, HttpServletResponse response){// 定义response输出类型为image/jpeg类型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 jpegresponse.setContentType("image/jpeg");//-------------------生成验证码 begin --------------------------//获取验证码文本内容String text = defaultKaptcha.createText();System.out.println("验证码内容:"+text);//将验证码文本内容放入sessionrequest.getSession().setAttribute("captcha",text);BufferedImage image = defaultKaptcha.createImage(text);ServletOutputStream outputStream = null;try {outputStream = response.getOutputStream();//输出流输出图片,格式为jpgImageIO.write(image,"jpg",outputStream);outputStream.flush();} catch (IOException e) {e.printStackTrace();}finally {if (null!=outputStream){try {outputStream.close();} catch (IOException e) {e.printStackTrace();}}}//-------------------生成验证码 end --------------------------}
}

4、测试

输入http://127.0.0.1:8080/captcha回车

5、目录结构

谷歌验证码kaptcha生成工具类相关推荐

  1. java captcha 验证码_验证码图片生成工具类——Captcha.java

    验证码图片生成工具,使用JAVA生成的图片验证码,调用getRandcode方法获取图片验证码,以流的方式传输到前端页面. import java.awt.Color; import java.awt ...

  2. java 图形校验_java图形验证码生成工具类 web页面校验验证码

    java图形验证码生成工具类 web页面校验验证码 发布于 2020-7-14| 复制链接 摘记: 最近做验证码,参考网上案例,发现有不少问题,特意进行了修改和完善.验证码生成器: ```java i ...

  3. java图形验证码生成工具类

    转载自   java图形验证码生成工具类 生成验证码效果       ValidateCode.java 验证码生成类 package cn.dsna.util.images; import java ...

  4. 条形码生成工具类实现

    1.pom引用: <!-- 条形码工具类 --> <dependency><groupId>com.google.zxing</groupId>< ...

  5. JAVA接口签名sign生成工具类

    签名规则 1.线下分配appid和appsecret,针对不同的调用方分配不同的appid和appsecret 2.加入timestamp(时间戳),10分钟内数据有效 3.加入流水号nonce(防止 ...

  6. 密钥生成工具类:RSA2 256位 加解密工具类 RsaUtils

    import java.io.IOException; import java.security.*; import java.security.spec.PKCS8EncodedKeySpec; i ...

  7. 数据库设计文档生成工具类

    在企业级开发中.我们经常会有编写数据库表结构文档的时间付出,如果数据库表结构更新了还得手动更新维护到文档中,很是繁琐.GitHub 上发现了一个好工具 screw(螺丝钉),在此分享下 1.引入依赖 ...

  8. 二维码 生成工具类(文件转Base64字符串,Base64字符串转文件)

    希望我的知识榨干了能帮到你解除困难,要是没有帮助你的,问度娘和知爹 一.POM.xml依赖下载 二.工具类提供 一.POM.xml依赖下载 <!-- 生成二维码依赖 --><depe ...

  9. Java:二维码生成工具类

    java 二维码生成工具类 需要引入的maven <!--Java 生成二维码 --> <dependency><groupId>com.google.zxing& ...

最新文章

  1. 世界杯足球竞赛源码下载
  2. 激光雷达和相机联合标定 之 开源代码和软件汇总 (2004-2021)
  3. Jdk动态代理 底层源码分析
  4. centos下openfire安装(转)
  5. Python绘制渐变色三角形
  6. 最近摸了下DELL 几种老设备的一点心得
  7. replace()替换文字
  8. 第三章EF的基本使用 EF数据实体模型的更新
  9. hiberntate教程笔记6
  10. 51nod1001数组中和等于K的数对
  11. android修改状态栏图标大小,安卓手机状态栏图标位置修改教程
  12. 清除 input 的历史记录
  13. 利用Freessl部署免费SSL证书
  14. 联想电脑如何关闭/开启windows自动更新
  15. php做个抽签人名,基于JS实现的随机数字抽签实例
  16. Habor 入门指南
  17. Android内存优化大全(二)
  18. Deprecated Gradle features were used in this build, making it incompatible with Gradle 7.0.
  19. Yuuki and a problem (树套树)
  20. 华为智慧屏鸿蒙评测,搭载鸿蒙系统的荣耀智慧屏值得入手吗?荣耀智慧屏全面评测...

热门文章

  1. ST-GCN训练自己的数据集代码实践问题记录
  2. 我的笔记(主要是尚品汇前台项目)
  3. Mac系统下 brew 更换清华源
  4. 京东物流新能源电动货车来了,雾霾风沙快走开
  5. 上海首个科普公园正式开园!氪空间携科普企业齐亮相
  6. 【毕设记录】Stata稳健性检验~ Robustness
  7. Qt中使用GLEW进行OpenGL开发
  8. 是谁在引领世界?智能手机行业的中国力量
  9. dropdown-toggle
  10. 读书有益——》你的人生需要一场整理