随着很多网站登录都需要进行一个图形验证码的校验,接下来就给大家讲下后端怎么画这个图形验证码。
提示:以下是本篇文章正文内容,下面案例可供参考
一、图形验证码是什么?
Hutool是一个Java工具包类库,对文件、流、加密解密、转码、正则、线程、XML等JDK方法进行封装,组成各种Util工具类。
二、使用步骤
1.引入Hutool依赖
代码如下(示例):
<dependency> <groupId>cn.hutool</groupId> <artifactId>hutool-all</artifactId> <version>5.7.22</version> </dependency>
2.实现接口
代码如下(示例):
/**
* 获取图形验证码
* @param form
* @return
*/
@Override
public String getBase64Code(GetBase64CodeForm form) {
// 1.使用hutool工具生成验证码 ,宽,高,字符数,线条模糊度
LineCaptcha lineCaptcha = CaptchaUtil.createLineCaptcha(300, 192,5, 1000);
String code = lineCaptcha.getCode();
//将图形验证码存入redis中,并且15分钟后过期
redisTemplate.opsForValue().set(RedisKeyConstant.GRAPHIC_VERIFICATION_CODE+form.getClientId(),code,15, TimeUnit.MINUTES);
return lineCaptcha.getImageBase64();
}
1.以下的四个参数:高度,宽度,字符数,模糊度(线条数)
CaptchaUtil.createLineCaptcha(300, 192,5, 1000);
字符数就是需要生成多少个字的验证码,例如这里设置了5,就会生成以下五个字符
,模糊度就是背景那些线条,越大越不清晰。
2.最后直接获取:cdtzc
String code = lineCaptcha.getCode();
3.存入Redis
redisTemplate.opsForValue().set(RedisKeyConstant.GRAPHIC_VERIFICATION_CODE+form.getClientId(),code,15, TimeUnit.MINUTES);
这段代码是存入Redis缓存中的,redisTemplate.opsForValue().set(你的Key,生成的验证码(cdtzc),15分钟后过期,分钟)