模拟验证码发送

发布于:2023-01-17 ⋅ 阅读:(536) ⋅ 点赞:(0)

目录

一.模拟验证码发送

1.输入手机号,点击发送随机生成6位数字码,

2.两分钟内有效,把验证码放入Redis里面,设置过期时间为120秒

3.判断验证码是否符合一致,从Redis获取验证码和输入的验证码进行比较

4.每个手机每天只能发送3次验证码, incr每次发送之后+1,大于2的时候提交不能发送。

已经三次后会出现(结果)


本文是本人笔记,如果说是在掘金上看到的话没错,还是本人程程呀 的个人主页 - 动态 - 掘金只有这一个。如果有哪里不对的话欢迎各位大佬指出问题,本人是一个小白。

上一篇文章链接为:Redis发布订阅和数据类型_程程呀是小白的博客-CSDN博客 ,本篇是连接上一篇Redis发布订阅和数据类型_程程呀是小白的博客-CSDN博客

如果是springboot的话请看springboot创建项目_程程呀是小白的博客-CSDN博客_springboot创建项目 ,这个是从头开始的还没有学完springboot,一起学习呀!!!!

一.模拟验证码发送

1.输入手机号,点击发送随机生成6位数字码,

  public static void main(String[] args) {

String code=getCode();

        System.out.println(code);

    }

    //1随机生成6位数字验证码

    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;

    }

2.两分钟内有效,把验证码放入Redis里面,设置过期时间为120秒

//2 每个手机每天只能发送三次,验证码放到Redis中,设置过期时间

public static void verifyCode(String phone){

    //连接Redis

    Jedis jedis=new Jedis("192.168.1.6",6379);

    //拼接key

    //手机发送次数

    String countKey="VerifyCode"+phone+":count";

    //验证码key

    String codeKey="VerifyCode"+phone+":code";

    //每个手机每天只能发送三次

    String count=jedis.get(countKey);

    if (count == null){

        //没有发送次数,第一次发送

        //设置发送次数是1

        jedis.setex(countKey,24*60*60,"1");

    }else if(Integer.parseInt(count)<=2){

        //发送次数加1

        jedis.incr(countKey);

    }else if (Integer.parseInt(count)>2){

     //发送三次,不能再发送

        System.out.println("今日发送次数已经超过三次了哦!!!!");

        jedis.close();

return;

    }

    //发送验证码放到Redis

    String vcode=getCode();

    jedis.setex(codeKey,120,vcode);

    jedis.close();

}

3.判断验证码是否符合一致,从Redis获取验证码和输入的验证码进行比较

//3 验证码校验

     public static void getRedisCode(String  phone,String code){

        //从Redis获取验证码

    Jedis jedis=new Jedis("192.168.1.6",6379);

//验证码key

    String codekey="VerifyCode"+phone+":code";

    String reidsCode=jedis.get(codekey);

    //判断

    if (reidsCode.equals(code)){

        System.out.println("成功");

    }else {

        System.out.println("失败");

    }jedis.close();

}

4.每个手机每天只能发送3次验证码, incr每次发送之后+1,大于2的时候提交不能发送。

public static void main(String[] args) {

//模拟验证码发送

        verifyCode("13656458936");

        //getRedisCode("13656458936","260372");

    }

已经三次后会出现(结果)

今日发送次数已经超过三次了哦!!!!

 

 

本文是本人笔记,如果说是在掘金上看到的话没错,还是本人程程呀 的个人主页 - 动态 - 掘金只有这一个。如果有哪里不对的话欢迎各位大佬指出问题,本人是一个小白。

上一篇文章链接为:Redis发布订阅和数据类型_程程呀是小白的博客-CSDN博客 ,本篇是连接上一篇Redis发布订阅和数据类型_程程呀是小白的博客-CSDN博客

如果是springboot的话请看springboot创建项目_程程呀是小白的博客-CSDN博客_springboot创建项目 ,这个是从头开始的还没有学完springboot,一起学习呀!!!!

 

本文含有隐藏内容,请 开通VIP 后查看

网站公告

今日签到

点亮在社区的每一天
去签到