1: 获取验证码

 @GetMapping(value = "/getCheckCode")public Result<Map<String,String>> getCheckCode(){Result<Map<String,String>> result = new Result<Map<String,String>>();Map<String,String> map = new HashMap<String,String>();try {String code = RandomUtil.randomString(BASE_CHECK_CODES,4);//获取随机的字符串,并且是4个字符String key = MD5Util.MD5Encode(code+System.currentTimeMillis(), "utf-8");//生成唯一的keyredisUtil.set(key, code, 60);//设置key和对应的字符串,设置缓存时间60smap.put("key", key);map.put("code",code);result.setResult(map);result.setSuccess(true);} catch (Exception e) {e.printStackTrace();result.setSuccess(false);}return result;}

2: MD5Util工具类


import java.security.MessageDigest;public class MD5Util {public static String byteArrayToHexString(byte b[]) {StringBuffer resultSb = new StringBuffer();for (int i = 0; i < b.length; i++){resultSb.append(byteToHexString(b[i]));}return resultSb.toString();}private static String byteToHexString(byte b) {int n = b;if (n < 0) {n += 256;}int d1 = n / 16;int d2 = n % 16;return hexDigits[d1] + hexDigits[d2];}public static String MD5Encode(String origin, String charsetname) {String resultString = null;try {resultString = new String(origin);MessageDigest md = MessageDigest.getInstance("MD5");if (charsetname == null || "".equals(charsetname)) {resultString = byteArrayToHexString(md.digest(resultString.getBytes()));} else {resultString = byteArrayToHexString(md.digest(resultString.getBytes(charsetname)));}} catch (Exception exception) {}return resultString;}private static final String hexDigits[] = { "0", "1", "2", "3", "4", "5","6", "7", "8", "9", "a", "b", "c", "d", "e", "f" };}

3:redis的方法

 /*** 普通缓存放入并设置时间* * @param key   键* @param value 值* @param time  时间(秒) time要大于0 如果time小于等于0 将设置无限期* @return true成功 false 失败*/public boolean set(String key, Object value, long time) {try {if (time > 0) {redisTemplate.opsForValue().set(key, value, time, TimeUnit.SECONDS);} else {set(key, value);}return true;} catch (Exception e) {e.printStackTrace();return false;}}/*** 普通缓存获取* * @param key 键* @return 值*/public Object get(String key) {return key == null ? null : redisTemplate.opsForValue().get(key);}

4: 验证验证码是否正确

     Object checkCode = redisUtil.get(sysLoginModel.getCheckKey());if(checkCode==null) {result.error500("验证码失效");return result;}else if(!checkCode.equals(sysLoginModel.getCaptcha()))              {result.error500("验证码错误");return result;}else{return "输入验证码正确";}

5: SysLoginMode类

public class SysLoginModel {@ApiModelProperty(value = "账号")private String username;@ApiModelProperty(value = "密码")private String password;@ApiModelProperty(value = "验证码")private String captcha;@ApiModelProperty(value = "验证码key")private String checkKey;public String getUsername() {return username;}public void setUsername(String username) {this.username = username;}public String getPassword() {return password;}public void setPassword(String password) {this.password = password;}public String getCaptcha() {return captcha;}public void setCaptcha(String captcha) {this.captcha = captcha;}public String getCheckKey() {return checkKey;}public void setCheckKey(String checkKey) {this.checkKey = checkKey;}}

redis 获取验证码相关推荐

  1. web自动化Python获取Redis缓存验证码

    在进行UI自动化测试过程中,有些情况下登录可能需要进行验证码验证 自动化测试中图片验证码是一个很常见的问题,解决的方法也有很多,比如: 使用OCR识别的技术,对验证码的图片进行字符识别 让开发提供一个 ...

  2. 利用redis保存验证码并设置过期时间

    package com.atguigu.jedis;import redis.clients.jedis.Jedis;import java.util.Random;public class Phon ...

  3. Redis使用验证码

    目录 一.要求 二.创建类并使用Random生成六位验证码 三.将验证码放到redis中,并设置约束条件 四.验证码校验 五.通过main方法调用上面的方法 1.发送验证码 2.进入linux查看验证 ...

  4. 整合rabbitmq+redis发送验证码消息

    文章目录 配置: 验证码工具类 处理发送验证码的消息 controller层 验证验证码是否正确 配置: server:port: 8084 #邮件相关配置 spring:application:na ...

  5. 不使用session,借助redis实现验证码

    1.首先看一下基本的流程 2.看一下代码 注:其中用到的一些工具类,可以到我的github上去下载  https://github.com/hjzgg/usually_util/tree/master ...

  6. vue+springboot+阿里云短信服务(集成redis实现验证码登录业务)

    阿里云短信服务-介绍 阿里云短信服务(Short Message Service)是广大企业客户快速触达手机用户所优选使用的通信能力.调用API或用群发助手,即可发送验证码.通知类和营销类短信:国内验 ...

  7. ssh,ssm整合redis存储验证码

    ssh整合redis存储验证码 SSM整合redis存储验证码 思路 **获取验证码部分:** **登录部分** 细节 详细代码 前端 后端 SSH 思路: 测试redis是否连接成功 详细代码 后端 ...

  8. 腾讯云短信服务——获取验证码

    引言 之前介绍过阿里云短信服务,传送门:阿里云短信服务--短信发送验证码,但是由于阿里云现在短信调用门槛较高,申请有很多限制(我申请好几次都没有通过),所以只能使用测试账号给固定的手机号发送验证码,自 ...

  9. 手机号获取验证码:django版本2.2/ js

    (venv)虚拟环境安装django版本2.2.12 pip install django==2.2.12 -i https://pypi.tuna.tsinghua.edu.cn/simple/ ( ...

  10. 实现会员注册功能时如何通过qq邮箱获取验证码,从而验证登录? 详细步骤

    文章目录 会员注册_邮箱验证码功能实现: 前端操作: 后端操作: SpringBoot集成邮件发送验证码: 1.导入发送邮件jar包 2.配置 3.Controller层处理 4.service层注入 ...

最新文章

  1. 从paxos到raft zab,为何raft能够“独领风骚”
  2. 又被 AI 抢饭碗?2457 亿参数规模,全球最大中文人工智能巨量模型 “源1.0”正式开源...
  3. 简明 MongoDB 入门教程
  4. 安卓点击图片跳转界面_安卓手机APP控制无线开关的电路方案设计(原理图+源码)...
  5. 游戏编程技巧分析:策划变心太快?也许可以使用组合
  6. 如何通过CSS开启硬件加速来提高网站性能
  7. 1073. Pearls
  8. CompressAI:InterDigital开源基于学习的图像视频压缩研究库
  9. php 获取路由器mac地址,php如何获取网卡MAC地址(支持WIN与LINUX系统)
  10. BZOJ2388: 旅行规划
  11. office2010的安装和卸载
  12. antd4.0中Form使用initialValue
  13. 【构建基于树莓派cm4的机器人控制系统的运行环境】
  14. Github菜鸟指南
  15. 啊哈算法—解救小哈(广度优先搜索)
  16. mysql数据库级监控及常用计数器解析
  17. 即时配送行业黑马 闪飞侠2022正式起航
  18. NKOJ3685 8数
  19. 计算机网络(自顶向下)笔记
  20. python综合实验心得体会_综合实验心得体会

热门文章

  1. 模拟轮盘抽奖游戏:一等奖、二等奖、三等奖
  2. php.ini在哪?找不到php.ini,已解决
  3. 特征图注意力_【抠图中的注意力机制】HAttMatting---让抠图变得如此简单!
  4. java项目---------------------------嗖嗖移动大厅
  5. 姐养狗2号前来面基!祝大家新年快乐!
  6. android桌面隐藏功能,如何开启 安卓10 隐藏的桌面模式并或者显示器拓展支持
  7. 苹果电脑一直密码错误_您可能一直都在犯的安全和密码错误
  8. js转换金钱为中文单位元、万元、亿元、万亿
  9. 计算机条件格式设置方法,excel怎样利用条件格式把
  10. java 实现 excel 去重,nodejs读取并去重excel文件