1.依赖
导入hutool工具包用于创建验证码
<dependency><groupId>cn.hutool</groupId><artifactId>hutool-all</artifactId><version>5.5.2</version></dependency>
2.测试
生成一个验证码图片(生成的图片浏览器可以识别)
public static void main(String[] args) {//1.生成验证码CircleCaptcha circleCaptcha = CaptchaUtil.createCircleCaptcha(130, 50, 4, 30);//2.获取验证码codeString code = circleCaptcha.getCode();//3.获取验证码图片的base64编码String base64 = circleCaptcha.getImageBase64Data();//4.生成一个唯一的keyString key = UUID.randomUUID().toString();System.out.println("key = " + key);System.out.println("code = " + code);System.out.println( base64);}
随机生成的图片验证码
3.redis
将对应的数据存入redis当中去
package com.atguigu.spzx.manager.service.imp;import cn.hutool.captcha.CaptchaUtil;
import cn.hutool.captcha.CircleCaptcha;
import com.atguigu.spzx.manager.service.ValidateCodeService;
import com.atguigu.spzx.model.vo.system.ValidateCodeVo;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.data.redis.core.RedisTemplate;
import org.springframework.stereotype.Service;import java.util.UUID;/*** @version: java version 1.8* @Author: Mr Orange* @description:* @date: 2025-02-04 20:38*/
@Service
public class ValidateCodeServiceImpl implements ValidateCodeService {@AutowiredRedisTemplate<String,String> redisTemplate;@Overridepublic ValidateCodeVo generateValidateCode() {//1.生成验证码CircleCaptcha circleCaptcha = CaptchaUtil.createCircleCaptcha(130, 50, 4, 30);//4.生成一个唯一的keyString codeKey = UUID.randomUUID().toString().replace("-", "");//2.获取验证码codeString code = circleCaptcha.getCode();System.out.println("code = " + code);//3.获取验证码图片的base64编码String baseimg = circleCaptcha.getImageBase64Data();//后端在redis保存key跟coderedisTemplate.opsForValue().set(codeKey,code);//前端返回key跟imgValidateCodeVo validateCodeVo = new ValidateCodeVo();validateCodeVo.setCoderKey(codeKey);validateCodeVo.setCoderValue(baseimg);return validateCodeVo;}
}