kaptcha——谷歌验证码工具

一、说在开始

小伙伴,你好! 这是本人第一次分享,记录一下自己在java中的学习过程。因为设计需求,在登录的时候需要进行图片验证登录。虽然也可以单独使用代码实现但是,当知道有更好的工具可以用的时候谁不想简单点呢?

二、工具简介

  1. 验证码的字体
  2. 验证码字体的字体颜色
  3. 验证码内容的范围(数字,字母,中文汉字!)
  4. 验证码图片的大小,边框,边框粗细,边框颜色
  5. 验证码的干扰线
  6. 验证码的样式(鱼眼样式、3D、普通模糊、…)

三、用法

1、引入jar包
可以去官网http://code.google.com/p/kaptcha/下载jar,或者在pom.xml中导入

<dependency><groupId>com.github.penggle</groupId><artifactId>kaptcha</artifactId><version>2.3.2</version>
</dependency>

2、编写配置文件 KaptChaConfig.class

import org.springframework.context.annotation.Bean;
import org.springframework.stereotype.Component;import com.google.code.kaptcha.impl.DefaultKaptcha;
import com.google.code.kaptcha.util.Config;import java.util.Properties;/*** @author dk* @version 1.0.0* @ClassName KaptChaConfig.java* @Description TODO* @createTime 2021年11月20日 15:11:00*/
@Component
public class KaptChaConfig {@Beanpublic DefaultKaptcha getDefaultKaptcha() {com.google.code.kaptcha.impl.DefaultKaptcha defaultKaptcha = new com.google.code.kaptcha.impl.DefaultKaptcha();Properties properties = new Properties();// 图片边框properties.setProperty("kaptcha.border", "no");// 边框颜色properties.setProperty("kaptcha.border.color", "black");//边框厚度properties.setProperty("kaptcha.border.thickness", "1");// 图片宽properties.setProperty("kaptcha.image.width", "120");// 图片高properties.setProperty("kaptcha.image.height", "60");//图片实现类properties.setProperty("kaptcha.producer.impl", "com.google.code.kaptcha.impl.DefaultKaptcha");//文本实现类properties.setProperty("kaptcha.textproducer.impl", "com.google.code.kaptcha.text.impl.DefaultTextCreator");//文本集合,验证码值从此集合中获取properties.setProperty("kaptcha.textproducer.char.string", "0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ");//验证码长度properties.setProperty("kaptcha.textproducer.char.length", "4");//字体properties.setProperty("kaptcha.textproducer.font.names", "宋体");//字体颜色properties.setProperty("kaptcha.textproducer.font.color", "black");//文字间隔properties.setProperty("kaptcha.textproducer.char.space", "4");//干扰实现类properties.setProperty("kaptcha.noise.impl", "com.google.code.kaptcha.impl.DefaultNoise");//干扰颜色properties.setProperty("kaptcha.noise.color", "blue");//干扰图片样式properties.setProperty("kaptcha.obscurificator.impl", "com.google.code.kaptcha.impl.WaterRipple");//背景实现类properties.setProperty("kaptcha.background.impl", "com.google.code.kaptcha.impl.DefaultBackground");//背景颜色渐变,结束颜色properties.setProperty("kaptcha.background.clear.to", "white");//文字渲染器properties.setProperty("kaptcha.word.impl", "com.google.code.kaptcha.text.impl.DefaultWordRenderer");Config config = new Config(properties);defaultKaptcha.setConfig(config);return defaultKaptcha;}
}

3、生成图片的方法 YanzhengmaUtil.class

import java.awt.image.BufferedImage;import java.io.File;import javax.imageio.ImageIO;import javax.servlet.http.HttpServletRequest;import javax.servlet.http.HttpServletResponse;import org.apache.commons.io.FileUtils;import org.springframework.util.FastByteArrayOutputStream;import com.google.code.kaptcha.impl.DefaultKaptcha;
public class YanzhengmaUtil {/*** 生成验证码图片* @param request 设置session* @param response 转成图片* @param captchaProducer 生成图片方法类* @param validateSessionKey session名称* @throws Exception*/public static void validateCode(HttpServletRequest request, HttpServletResponse response, DefaultKaptcha captchaProducer, String validateSessionKey) throws Exception{//        response.setDateHeader("Expires", 0);
//        response.setHeader("Cache-Control", "no-store, no-cache, must-revalidate");
//        response.addHeader("Cache-Control", "post-check=0, pre-check=0");
//        response.setHeader("Pragma", "no-cache");
//        response.setContentType("image/jpeg");// create the text for the imageString capText = captchaProducer.createText();// store the text in the sessionrequest.getSession().setAttribute(validateSessionKey, capText);System.out.println(request.getSession().getAttribute(validateSessionKey));System.out.println(validateSessionKey+":"+capText);// create the image with the textBufferedImage bi = captchaProducer.createImage(capText);//  OutputStream out = response.getOutputStream();FastByteArrayOutputStream os = new FastByteArrayOutputStream();// write the data outImageIO.write(bi, "jpg", os);FileUtils.writeByteArrayToFile(new File("D:\\ice\\code\\ice_vue_test\\src\\pages\\login\\vercode.jpg"), os.toByteArray());try {os.flush();} finally {os.close();}}
}

D:\ice\code\ice_vue_test\src\pages\login\vercode.jpg
这个是设置你保存的本地地址

4、调用接口

这里就不用再多说了,直接调用方法就是。值得注意的就是 当某一个地方使用了springboot 的相关注解的时候,再另外一个地方如果想要使用该注解下的方法或者类,这是也需要加上Springboot与之相关的注解,不然会报错误。

kaptcha——谷歌验证码工具相关推荐

  1. 谷歌了java集成开发_Spring整合Kaptcha谷歌验证码工具的开发步骤

    开发步骤: 1.加入依赖 com.google.code.kaptcha kaptcha 2.3 国内镜像无法下载该依赖,需要手动通过jar包在本地仓库安装一个依赖. 安装命令: mvn instal ...

  2. SpringBoot整合kaptcha(谷歌验证码工具)实现验证码功能

    介绍: kaptcha是Google提供的一个图形验证码插件,有了它,你可以通过简单的配置生成各种样式的验证码. 1:SpringBoot引入kaptcha的依赖 <dependency> ...

  3. Spring Boot 配置Kaptcha(谷歌验证码工具)(生成验证码、验证验证码)

    1 Kaptcha 1.1 Kaptcha简介 Kaptcha 是一个扩展自simplecaptcha的验证码库,默认情况下,Kaptcha非常易于设置和使用,并且默认输出会产生一个很难验证的验证码. ...

  4. 【Spring Boot组件集成实战】集成Kaptcha谷歌验证码

    更多精彩内容,请访问 Spring Boot组件集成实战专栏 ! 推荐项目:一套基于Spring Boot+Layui的内容管理系统/快速开发脚手架(含完整的开发文档.演示网址等) 文章目录 1. 验 ...

  5. kaptcha谷歌验证码使用

    1.添加pom.xml依赖 在maven工程中的pom.xml文件中添加依赖如下 <!--验证码--><!-- https://mvnrepository.com/artifact/ ...

  6. Kaptcha图片验证码工具

    阅读文本大概需要3分钟. 验证码的作用 图片验证码自从诞生以来从未被抛弃,依然发出属于它所应有的光.验证码经常验证如下一些场景. 1.用户登录,防止机器人登录 2.论坛留言,防止恶意灌水 3.短信验证 ...

  7. Maven导入本地Kaptcha谷歌验证码并在程序中使用

    问题 在用Maven之前,kaptcha的jar包是下载后作为LIbrary导入项目的,但是在项目使用maven后,maven上不存在kaptcha的坐标,只能下载jar包到本地并添加到项目中. 然而 ...

  8. 使用Kaptcha生成图片验证码

    使用Kaptcha生成图片验证码 kaptcha是什么? kaptcha使用步骤 kaptcha代码实例 引入依赖 图片验证码配置类 自定义结果返回类 生成验证码 返回结果枚举 kaptcha是什么? ...

  9. 谷歌验证码kaptcha生成工具类

    谷歌验证码生成工具类 1.引入依赖 2.验证码配置类 3.controller层 4.测试 5.目录结构 1.引入依赖 <!-- google kaptcha依赖 --> <depe ...

  10. 谷歌kaptcha 图片验证码的使用

    谷歌验证码kaptcha 使用步骤如下: 1.导入谷歌验证码的jar 包 kaptcha-2.3.2.jar 2.在web.xml 中去配置用于生成验证码的Servlet 程序 <servlet ...

最新文章

  1. Waymo十周年:多尔戈夫讲述从被嘲笑到硕果累累
  2. SSM 实现支付宝支付功能(图文详解+完整代码)
  3. Java对象的创建过程
  4. 人类史上最大最好的希望事件
  5. break和continue关键字
  6. 《Iterative-GAN》的算法伪代码整理
  7. 一个简单的键值存储微服务
  8. Linux之DNS配置及案例
  9. latex 生成pdf显示行号
  10. 专题导读:基于大数据的知识图谱及其应用
  11. yjk计算书_用户手册
  12. java affinity_sched_setaffinity()如何工作?
  13. linux在用户登陆界面出现不断循环解决方法
  14. PTA 7-10 查询水果价格
  15. 干货 | 在搜索引擎广告关键词生成上,算法可以做什么?
  16. Eclipse IDE
  17. 怎样对一个项目进行成本管理,具体步骤是啥?
  18. 蓝牙解锁AutoLock 1.0.2 Mac中文版 (蓝牙WiFi解锁工具)
  19. VSCode替换掉/去掉空行
  20. [附源码]计算机毕业设计JAVA同德佳苑物业管理系统论文

热门文章

  1. LINUX下三个内核文件详解(vmlinuz/initrd.img/System.map)
  2. 论文查重算法 python_论文查重降重绝密方法
  3. 微信机器人框架【Python】
  4. 程序员面试头条被拒,一年后逆袭拿到offer【巴分巴秒】
  5. 数模竞赛必备参考书籍《算法竞赛入门经典(第2版)》PDF免费下载
  6. DB9 公头母头引脚定义及连接、封装
  7. XML案例——Jsoup网页爬虫 XML配置参数
  8. Python静态网页爬虫项目实战
  9. 2008 r2 server sql 中文版补丁_SQL Server 2008 R2 补丁
  10. VB.NET学习笔记:异步委托实现等待窗体(loading界面),执行任务超时可以取消操作