加载中...

redis+java简单6位数验证码验证

实现思路

  1. 定义一个方法实现随机二维码
public static String getCode() {
//        发送六位数验证码
        Random random = new Random();
        String code = "";
        for (int i = 0; i < 6; i++) {
            int rand = random.nextInt(10);
            code += rand;
        }
        return code;

    }
  1. 定义一个方法实现每个手机每天只能发送三次,验证码发到redis中,设置过期时间
 public static void verifyCode(String phone) {
        Jedis jedis = new Jedis("192.168.80.110", 6379);
//        验证电话次数统计
        String countKey = "VerifyCode" + phone + ":count";
//        验证码统计
        String codeKey = "VerifyCode" + phone + ":code";
//        获取验证码次数
        String count = jedis.get(countKey);
        if (count == null) {
//            设置验证码发送次数时间限制
            jedis.setex(countKey, 24 * 60 * 60, "1");
        } else if (Integer.parseInt(count) <= 2) {
//            设置值自增一
            jedis.incr(countKey);
          } else if (Integer.parseInt(count)>2) {
            System.out.println("今天发送次数超过三次");
            jedis.close();
//            超过三次return
            return;
        }
//        发送验证码放到redis里面
        String vcode = getCode();
        jedis.setex(codeKey,120,vcode);

        jedis.close();

    }
  1. 定义一个方法对验证码进行验证
public static void getRedisCode(String phone, String code){
        Jedis jedis = new Jedis("192.168.80.110", 6379);
        String codeKey = "VerifyCode" + phone + ":code";
        String redisCode = jedis.get(codeKey);
        if(redisCode.equals(code)){
            System.out.println("成功");
        }else {
            System.out.println("失败");
        }
    }
posted @   猪猪会跳墙⊙∀⊙  阅读(110)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 阿里最新开源QwQ-32B,效果媲美deepseek-r1满血版,部署成本又又又降低了!
· 单线程的Redis速度为什么快?
· SQL Server 2025 AI相关能力初探
· AI编程工具终极对决:字节Trae VS Cursor,谁才是开发者新宠?
· 展开说说关于C#中ORM框架的用法!
点击右上角即可分享
微信分享提示