当前位置: 首页 > news >正文

创建全国文明城市标语口号上海网站seoseodian

创建全国文明城市标语口号,上海网站seoseodian,好的网站建设公司有哪些,怎么优化自己网站的关键词hutool工具类实现验证码 一.生成验证码二.校验验证码三.使用案例1.引入hutool工具类2.VerifyCodeResp接口响应体3.VerifyCodeController验证码工具类4.测试验证5.项目结构及源码下载 利用hutool工具类,可以很方便生成不同类型的验证码。这里简单记录下使用过程。 一…

hutool工具类实现验证码

  • 一.生成验证码
  • 二.校验验证码
  • 三.使用案例
    • 1.引入hutool工具类
    • 2.VerifyCodeResp接口响应体
    • 3.VerifyCodeController验证码工具类
    • 4.测试验证
    • 5.项目结构及源码下载

利用hutool工具类,可以很方便生成不同类型的验证码。这里简单记录下使用过程。

一.生成验证码

提供接口将生成的验证码存入session或redis,将验证码以图片格式或者base64编码串返回给调用端。

二.校验验证码

提供接口将收到调用端传过来的校验码,从session或redis取出验证码,两个验证码都全部转小写,进行无大小写区分匹配校验,返回true/flase 。

三.使用案例

1.引入hutool工具类

        <!-- hutool工具类 --><dependency><groupId>cn.hutool</groupId><artifactId>hutool-all</artifactId><version>5.7.12</version></dependency>

2.VerifyCodeResp接口响应体

@Data
public class VerifyCodeResp implements Serializable {/*** header头参数:Captcha-Key*/private String captchaKey;/*** 验证码图片*/private String captchaImg;
}

3.VerifyCodeController验证码工具类

/*** 验证码工具类*/
@RestController
public class VerifyCodeController {@ResourceRedisTemplate<String, String> redisTemplate;/*** 生成验证码** 方法一 ShearCaptcha* 图片格式* session存储* 接口需添加白名单放行** @param request HttpServletRequest*/@GetMapping("/verify")public void verify(HttpServletRequest request, HttpServletResponse response) throws IOException {response.setContentType("image/jpeg");response.setHeader("Pragma", "no-cache");response.setHeader("Cache-Control", "no-cache");response.setDateHeader("Expires", 0);//定义图形验证码的长、宽、验证码字符数、干扰线宽度ShearCaptcha shearCaptcha = CaptchaUtil.createShearCaptcha(150, 40, 5, 4);//图形验证码写出,可以写出到文件,也可以写出到流shearCaptcha.write(response.getOutputStream());//获取验证码中的文字内容request.getSession().setAttribute("verifyCode", shearCaptcha.getCode());}/*** 生成验证码** 方法二 LineCaptcha* 图片格式* session存储* 接口需添加白名单放行** @param request HttpServletRequest*/@GetMapping("/verifyTwo")public void verifyTwo(HttpServletRequest request, HttpServletResponse response) throws IOException {response.setContentType("image/jpeg");response.setHeader("Pragma", "no-cache");response.setHeader("Cache-Control", "no-cache");response.setDateHeader("Expires", 0);//定义图形验证码的长、宽、验证码字符数、干扰线宽度LineCaptcha lineCaptcha = CaptchaUtil.createLineCaptcha(150, 40, 5, 4);//图形验证码写出,可以写出到文件,也可以写出到流ImageIO.write(lineCaptcha.getImage(), "JPEG", response.getOutputStream());//获取验证码中的文字内容request.getSession().setAttribute("verifyCode", lineCaptcha.getCode());}/*** 方法三 ShearCaptcha* 图片的base64编码字符串* session存储* 接口需添加白名单放行** @param request HttpServletRequest* @return String*/@GetMapping("/getVerify")public String getVerify(HttpServletRequest request) {//定义图形验证码的长、宽、验证码字符数、干扰线宽度ShearCaptcha shearCaptcha = CaptchaUtil.createShearCaptcha(150, 40, 5, 4);//获取验证码中的文字内容request.getSession().setAttribute("verifyCode", shearCaptcha.getCode());String base64String = "";try {base64String = "data:image/png;base64," + shearCaptcha.getImageBase64();} catch (Exception e) {e.printStackTrace();}return base64String;}/*** 方法四 LineCaptcha* 图片的base64编码字符串* session存储* 接口需添加白名单放行** @param request HttpServletRequest* @return String*/@GetMapping("/getVerifyTwo")public String getVerifyTwo(HttpServletRequest request) {//定义图形验证码的长、宽、验证码字符数、干扰线宽度LineCaptcha lineCaptcha = CaptchaUtil.createLineCaptcha(150, 40, 5, 4);//获取验证码中的文字内容request.getSession().setAttribute("verifyCode", lineCaptcha.getCode());String base64String = "";try {//返回 base64ByteArrayOutputStream bos = new ByteArrayOutputStream();ImageIO.write(lineCaptcha.getImage(), "JPEG", bos);byte[] bytes = bos.toByteArray();Base64.Encoder encoder = Base64.getEncoder();base64String = "data:image/png;base64," + encoder.encodeToString(bytes);} catch (Exception e) {e.printStackTrace();}return base64String;}/*** 方法五 ShearCaptcha* 图片的base64编码字符串* redis存储* 接口需添加白名单放行** @return String*/@GetMapping("/getVerifyThree")public VerifyCodeResp getVerifyThree() {String captchaKey = UUID.randomUUID().toString();//定义图形验证码的长、宽、验证码字符数、干扰线宽度ShearCaptcha shearCaptcha = CaptchaUtil.createShearCaptcha(150, 40, 5, 0);// 存入redis并设置过期时间为30分钟redisTemplate.opsForValue().set("captcha:" + captchaKey, shearCaptcha.getCode(), 30L, TimeUnit.MINUTES);String base64String = "";try {base64String = "data:image/png;base64," + shearCaptcha.getImageBase64();} catch (Exception e) {e.printStackTrace();}VerifyCodeResp verifyCodeResp = new VerifyCodeResp();verifyCodeResp.setCaptchaKey(captchaKey);verifyCodeResp.setCaptchaImg(base64String);return verifyCodeResp;}/*** 方法六 LineCaptcha* 图片的base64编码字符串* redis存储* 接口需添加白名单放行** @return String*/@GetMapping("/getVerifyFour")public VerifyCodeResp getVerifyFour() {String captchaKey = UUID.randomUUID().toString();//定义图形验证码的长、宽、验证码字符数、干扰线宽度LineCaptcha lineCaptcha = CaptchaUtil.createLineCaptcha(150, 40, 5, 4);// 存入redis并设置过期时间为30分钟redisTemplate.opsForValue().set("captcha:" + captchaKey, lineCaptcha.getCode(), 30L, TimeUnit.MINUTES);String base64String = "";try {//返回 base64ByteArrayOutputStream bos = new ByteArrayOutputStream();ImageIO.write(lineCaptcha.getImage(), "JPEG", bos);byte[] bytes = bos.toByteArray();Base64.Encoder encoder = Base64.getEncoder();base64String = "data:image/png;base64," + encoder.encodeToString(bytes);} catch (Exception e) {e.printStackTrace();}VerifyCodeResp verifyCodeResp = new VerifyCodeResp();verifyCodeResp.setCaptchaKey(captchaKey);verifyCodeResp.setCaptchaImg(base64String);return verifyCodeResp;}
}

4.测试验证

如果测试验证码存入redis,则需要提前配置和启动redis。
在这里插入图片描述
在这里插入图片描述

5.项目结构及源码下载

在这里插入图片描述
下载地址 springboot-cacheable 欢迎star哦~

http://www.hkea.cn/news/135434/

相关文章:

  • 动漫网站开发与建设百度网盘网页版入口官网
  • 咸阳做网站长沙网络营销外包哪家好
  • 专门做私人定制旅游的网站搜索引擎营销方法
  • 注册安全工程师管理系统网奇seo赚钱培训
  • 武汉市住房和城乡建设厅官方网站生猪价格今日猪价
  • 住房和城乡建设部网站诚信评价搜索引擎优化人员优化
  • 网站制作 太原网络营销专业课程
  • 做网站去哪个公司网络营销策划书的结构
  • 个人无网站怎样做cps广告深圳全网推广公司
  • 中国人可以做的c2c网站上海网站排名推广
  • 网站建设目标定位公司员工培训方案
  • 美工培训班学百度自然搜索排名优化
  • 网站建设自学多长时间搜索引擎营销的过程
  • 做cpa的网站源码seo的外链平台有哪些
  • 那个网站做外贸最好成都网站建设方案外包
  • 企业网站建设效益分析联合早报 即时消息
  • html5网页成品代码自媒体seo优化
  • 门户网站建设招投标网络seo啥意思
  • 游戏币销售网站建设百度热搜seo
  • 线上投票链接怎么做厦门搜索引擎优化
  • 网页设计课程主要内容seo学校
  • php 深圳 电子商务网站开发seo优化好做吗
  • 网站建设开发技术天津济南网站设计
  • 信息公开网站建设网店推广分为哪几种类型
  • 南皮网站建设价格seo搜索引擎优化方式
  • 网上购物系统的设计与实现论文长沙seo优化公司
  • 风景旅游网页制作素材seo推广灰色词
  • 网站制作网站建设网页设计页面
  • 网站开发兼容极速字体颜色推荐seo平台优化服务
  • wordpress建站流量齐三seo顾问