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

宁波应用多的建站行业phpcmsv9中英文网站

宁波应用多的建站行业,phpcmsv9中英文网站,wordpress专题插件,南宁黄页电话号码查询hutool工具类实现验证码 一.生成验证码二.校验验证码三.使用案例1.引入hutool工具类2.VerifyCodeResp接口响应体3.VerifyCodeController验证码工具类4.测试验证5.项目结构及源码下载 利用hutool工具类#xff0c;可以很方便生成不同类型的验证码。这里简单记录下使用过程。 一… hutool工具类实现验证码 一.生成验证码二.校验验证码三.使用案例1.引入hutool工具类2.VerifyCodeResp接口响应体3.VerifyCodeController验证码工具类4.测试验证5.项目结构及源码下载 利用hutool工具类可以很方便生成不同类型的验证码。这里简单记录下使用过程。 一.生成验证码 提供接口将生成的验证码存入session或redis将验证码以图片格式或者base64编码串返回给调用端。 二.校验验证码 提供接口将收到调用端传过来的校验码从session或redis取出验证码两个验证码都全部转小写进行无大小写区分匹配校验返回true/flase 。 三.使用案例 1.引入hutool工具类 !-- hutool工具类 --dependencygroupIdcn.hutool/groupIdartifactIdhutool-all/artifactIdversion5.7.12/version/dependency2.VerifyCodeResp接口响应体 Data public class VerifyCodeResp implements Serializable {/*** header头参数Captcha-Key*/private String captchaKey;/*** 验证码图片*/private String captchaImg; }3.VerifyCodeController验证码工具类 /*** 验证码工具类*/ RestController public class VerifyCodeController {ResourceRedisTemplateString, 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.w-s-a.com/news/327280/

相关文章:

  • 广州市公需课在哪个网站可以做手机商城软件下载
  • app网站建设需要什么长治网站建设公司
  • 网站模板平台广告宣传网站
  • cc域名的网站做网站放太多视频
  • 让公司做网站要注意什么建设工程公司企业文化
  • 佛山搭建建网站哪家好微信如何建立自己的公众号
  • 联想公司网站建设现状广州建网站兴田德润团队
  • 网站开发的技术有网页设计实训报告工作内容和步骤
  • 视频做网站长沙网站制作平台
  • js网站建设北京seo公司优化网络可见性
  • 付款网站源码建网站卖东西
  • 用php做的录入成绩的网站wordpress等级插件
  • 网站运营优化方案广西桂林公司
  • 快递网站策划怎么做ppt长春建设信息网站
  • 做服装搭配图的网站有哪些经营一个网站要怎么做
  • 呼市品牌网站建设那家好增城住房和建设局网站
  • 网站首页布局设计代码太仓网站开发建设服务
  • 学校网站建设与管理porto wordpress模板
  • 余姚做网站公司网站建设有哪些基本流程
  • 门户网站建设的报价百度医生在线问诊
  • 北京公司注册在哪个网站浏览器打开网址404
  • 廊坊做网站公司绣花图案设计网站
  • 网站空间租用哪个好购物网站建设模板图片
  • 建设银行包头分行网站泰安网签成交量最新
  • 手机微网站与微官网现在去成都需要隔离吗
  • 学校的二级网站怎么建设深圳企业网站制作设计
  • 自己做qq头像静态的网站网站建设是属于软件开发费吗
  • 举报网站建设做网站之前的工作
  • 用QQ群做网站排名个人网站制作协议
  • 做茶叶网站的素材天津网站营销