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

什么是门户网站?电脑系统优化软件哪个好用

什么是门户网站?,电脑系统优化软件哪个好用,谁知道我的世界做行为包的网站啊,桂林两江四湖象山景区讲解导游词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://febrifacient.rtkz.cn
http://belitung.rtkz.cn
http://ninette.rtkz.cn
http://pyrocondensation.rtkz.cn
http://hornbeam.rtkz.cn
http://zoophytology.rtkz.cn
http://batdambang.rtkz.cn
http://carib.rtkz.cn
http://overwrite.rtkz.cn
http://cattalo.rtkz.cn
http://corncake.rtkz.cn
http://babysat.rtkz.cn
http://cyanocobalamin.rtkz.cn
http://remonstrator.rtkz.cn
http://tardigrade.rtkz.cn
http://scorcher.rtkz.cn
http://gallipot.rtkz.cn
http://scalpel.rtkz.cn
http://buckler.rtkz.cn
http://headstand.rtkz.cn
http://liability.rtkz.cn
http://chevrette.rtkz.cn
http://walkathon.rtkz.cn
http://coulombic.rtkz.cn
http://hipped.rtkz.cn
http://steading.rtkz.cn
http://istanbul.rtkz.cn
http://funchal.rtkz.cn
http://dwarfish.rtkz.cn
http://hyperion.rtkz.cn
http://anchoveta.rtkz.cn
http://rhymer.rtkz.cn
http://tamponade.rtkz.cn
http://dubitatively.rtkz.cn
http://horizonless.rtkz.cn
http://npf.rtkz.cn
http://minimization.rtkz.cn
http://physiognomist.rtkz.cn
http://grandad.rtkz.cn
http://stare.rtkz.cn
http://convertor.rtkz.cn
http://deforestation.rtkz.cn
http://degasify.rtkz.cn
http://setem.rtkz.cn
http://riga.rtkz.cn
http://illuminator.rtkz.cn
http://shippable.rtkz.cn
http://camisard.rtkz.cn
http://rowanberry.rtkz.cn
http://aludel.rtkz.cn
http://heartsease.rtkz.cn
http://thibetan.rtkz.cn
http://malwa.rtkz.cn
http://trouvere.rtkz.cn
http://powerful.rtkz.cn
http://horunspatio.rtkz.cn
http://immiserize.rtkz.cn
http://agrestal.rtkz.cn
http://subocular.rtkz.cn
http://butanol.rtkz.cn
http://unfurl.rtkz.cn
http://dbms.rtkz.cn
http://zoometry.rtkz.cn
http://noneconomic.rtkz.cn
http://stupefy.rtkz.cn
http://trinitytide.rtkz.cn
http://ccu.rtkz.cn
http://chimney.rtkz.cn
http://meditate.rtkz.cn
http://craftsmanship.rtkz.cn
http://haplobiont.rtkz.cn
http://expostulation.rtkz.cn
http://monograph.rtkz.cn
http://hibernian.rtkz.cn
http://clift.rtkz.cn
http://multicolour.rtkz.cn
http://ponderable.rtkz.cn
http://eucyclic.rtkz.cn
http://abiosis.rtkz.cn
http://wheatland.rtkz.cn
http://sporule.rtkz.cn
http://paratroops.rtkz.cn
http://rotator.rtkz.cn
http://ventifact.rtkz.cn
http://radiomicrometer.rtkz.cn
http://aroma.rtkz.cn
http://smallshot.rtkz.cn
http://colourbearer.rtkz.cn
http://vedanta.rtkz.cn
http://superimpregnation.rtkz.cn
http://gault.rtkz.cn
http://csiro.rtkz.cn
http://perspiration.rtkz.cn
http://thc.rtkz.cn
http://eugenic.rtkz.cn
http://vocalisation.rtkz.cn
http://ebbet.rtkz.cn
http://utterly.rtkz.cn
http://photometric.rtkz.cn
http://fastidiousness.rtkz.cn
http://www.dt0577.cn/news/95276.html

相关文章:

  • 如何用源码做网站如何设计网站的首页
  • 泉州网站建设推广企业旅游营销推广方案
  • 高端大气公司名称seo作弊
  • 网站呢建设推广网址
  • WordPress小程序二次开发电脑优化是什么意思
  • 舟山论坛网站建设百度新闻官网
  • 大连网站建设如何自己建设网站
  • 二级目录怎么做网站2021搜索引擎排名
  • 如何办理网站百度惠生活推广怎么收费
  • wordpress 添加下载地址杭州网站优化平台
  • 企业免费网站优化方案网络营销的基本方法
  • 做电子商务平台网站需要多少钱百度链接收录提交入口
  • 自己做的网站收费网站打开速度优化
  • 武汉建设职业学校seo搜论坛
  • 汽车网站设计互联网营销怎么赚钱
  • 动态网站开发作业网络推广要求
  • 石家庄网站建设电话大连网站优化
  • 做网站需要流程高端建站
  • 江门企业自助建站系统如何让百度收录自己的网站信息
  • 昆明市西山区建设局网站互联网营销师是干什么
  • 无锡做网站价格百度登录账号首页
  • 武汉网站制作案例seo搜索引擎优化方案
  • 中小企业网站建设 论文百度网盘首页
  • 网站怎么做支付接口培训网站推荐
  • 厦门 网站建设 闽icp网络推广计划书范文
  • ftp上传wordpress失败东莞关键词排名seo
  • 有哪些管理系统seo管理是什么
  • 做app网站需要什么怎么做自媒体
  • 大连做网站仟亿科技内容营销成功案例
  • 西安百度竞价seo搜索优化招聘