前言
相信大家在浏览网页的时候,经常会碰到人机校验。很经典的要属Google的人机校验,用多张图片进行点击校验。可以说是对于我们人类来说就是很烦的啦。烦归烦,但是为了安全着想,我们还是需要为自己的项目加上验证码机制,特别是一些防刷的接口调用下。今天我们就来学习简单的图形验证码实现。
环境准备
SpringBoot DEMO,Maven项目。
创建SpringBoot项目很简单,Intellij IDEA旗舰版可直接创建。
引入kaptcha maven依赖
<!-- https://mvnrepository.com/artifact/com.github.penggle/kaptcha -->
<dependency>
<groupId>com.github.penggle</groupId>
<artifactId>kaptcha</artifactId>
<version>2.3.2</version>
</dependency>
基本配置
application.yml
kaptcha:
border: "yes" // 是否有边框,默认为yes,可选yes、no
border.color: 105,179,90 //边框颜色
textproducer:
font:
color: blue // 验证码字体颜色
size: 30 // 文本字符大小
names: 宋体,楷体,微软雅黑 //文本字体样式
char:
length: 4 //验证码文本字符长度
image:
width: 120 // 图片宽度
height: 40 // 图片高度
session:
key: code // 存储session key
KaptchaConfig.java
/**
* @Description Kaptcha配置类 用于生成图形验证码
* @Author chenlinghong
* @Date 2019/1/25 10:31
**/
@Component
public class KaptchaConfig {
@Value("${kaptcha.border}")
private String border;
@Value("${kaptcha.border.color}")
private String borderColor;
@Value("${kaptcha.textproducer.font.color}")
private String textproducerFontColor;
@Value("${kaptcha.textproducer.font.size}")
private String textproducerFontSize;
@Value("${kaptcha.textproducer.font.names}")
private String textproducerFontNames;
@Value("${kaptcha.textproducer.char.length}")
private String textproducerCharLength;
@Value("${kaptcha.image.width}")
private String imag