要求:

1、输入手机号,点击发送后随机生成6位数字码,2分钟有效
2、输入验证码,点击验证,返回成功或失败
3、每个手机号每天只能发送3次

分析:

  1. 随机生成6位数数字码: 使用Ramdom
  2. 验证码2分钟有效: 将验证码存到redis中设置120秒过期时间
  3. 判断验证码是否正确:取出redis中存的验证码是否和输入验证码一致
  4. 每个手机号只能发送3次: 使用redis中incr方法将次数自增1,判断大于2提交不能发送

实现代码:

首先要先加入jedis依赖

package com.xly.jedis;import redis.clients.jedis.Jedis;import java.util.Random;/*** 模拟验证码发送*/
public class PhoneCode {public static void main(String[] args) {//模拟调用方法获得用户输入手机号/验证码String phone="13012345678";String code="123456";//模拟验证码发送verifyCode(phone);//验证getRedisCode(phone,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.每个手机每天只能发送3次,验证码放到redis中,设置过期时间2分钟public static void verifyCode(String phone){//链接redisJedis jedis=new Jedis("192.168.56.10",6379);//拼接key//手机发送次数String countKey="VerifyCode"+phone+":count";//验证码String codeKey="VerifyCode"+phone+":code";//验证发送次数   每个手机每天只能发送3次String count = jedis.get(countKey);if(count==null){//未发送过 设置发送次数为1、时间1天内过期jedis.setex(countKey,24*60*60,"1");}else if(Integer.parseInt(count)<=2){//发送次数+1jedis.incr(countKey);}else{//大于3次System.out.println("今天发送次数大于三次");jedis.close();//退出方法,否则会继续发送验证码return;}//将验证码放到redis中,120秒过期String vcode=getCode();jedis.setex(codeKey,120,vcode);jedis.close();}//验证码校验public static void getRedisCode(String phone,String code){//链接redisJedis jedis=new Jedis("192.168.56.10",6379);//验证码String codeKey="VerifyCode"+phone+":code";if (jedis.get(codeKey).equals(code)) {System.out.println("验证成功");}else{System.out.println("验证码错误");}jedis.close();}
}

【redis】模拟手机发送验证码相关推荐

  1. springboot集成redis模拟手机发送验证码进行验证

    1.配置redis依赖 因为springboot框架帮们集成了大部分的依赖和它自动配置类的特点,我们只需要在maven中配置后就可以使用了,极大的挺高了我们开发的效率! <dependency& ...

  2. Redis——模拟手机验证码发送

    使用redis模拟手机验证码发送,规定一个手机号一天只能请求三次验证码,且每次请求的验证码只有两分钟就会过期 1.首先写一个函数随机产生六位验证码,使用random函数 //随机生成六位验证码publ ...

  3. 健康管理系统第七天(移动端_体检预约(手机号校验、发送验证码之后30秒倒计时效果、生成验证码、向手机发送验证码))

    一.体检预约流程 用户可以通过如下操作流程进行体检预约: 1.在移动端首页点击体检预约,页面跳转到套餐列表页面 2.在套餐列表页面点击要预约的套餐,页面跳转到套餐详情页面 3.在套餐详情页面点击立即预 ...

  4. 手机发送验证码的业务逻辑探究-主要是安全性,响应性

    手机发送验证码的业务逻辑探究-主要是安全性,响应性 这样一来,只要知道静态的验证码是什么,脚本就可以轻松填写正确的验证码. 解决方法: 1后台是否可以限制一个IP发送的次数 2限定发送验证码的一分钟的 ...

  5. html如何发送验证码到手机,页面效果,给手机发送验证码

    html> 定时发送验证码 var wait = 5; function send(o) { if(wait==5){ //向服务器发送请求,给手机发送验证码 // $.post("/ ...

  6. 网站登录密码忘记后,通过向手机发送验证码实现找回密码的实现方法

    今天我想了一天如何实现网站用户在忘记了密码后,如何通过向手机发送验证码来重新设置密码.验证码的验证以及生成都已经做好了,现在主要是解决如何向用户手机发送短信.显然这需要一个第三方提供的短信接口,来帮助 ...

  7. springboot向手机发送验证码

    ** springboot向手机发送验证码 ** 1.在腾讯云里面申请短信签名,短信模板 在百度搜索腾讯云,进入到腾讯云里面,在产品里搜索短信 然后找到国内短信 创建签名和模板,创建签名可以用公众号. ...

  8. html给手机号发送验证码,js如何实现手机发送验证码功能

    js如何实现手机发送验证码功能 发布时间:2021-06-21 12:24:46 来源:亿速云 阅读:82 作者:小新 这篇文章将为大家详细讲解有关js如何实现手机发送验证码功能,小编觉得挺实用的,因 ...

  9. 微信小程序 授权登录+手机发送验证码+jwt验证接口(laravel8+php)

    参考博客 小程序授权登录并 laravel7(laravel8) token 应用 - 王越666 - 博客园 微信小程序sku商品规格选择器 - 简书 微信小程序 和 laravel8 实现搜索后分 ...

最新文章

  1. c/c++ ide clion安装编译器
  2. Linear regression with one variable算法实例讲解(绘制图像,cost_Function ,Gradient Desent, 拟合曲线, 轮廓图绘制)_矩阵操作...
  3. python数据挖掘入门与实战代码
  4. linux字体栅格化,响应式开发---网页的布局方式、媒体查询、栅格化布局、less语言...
  5. visual studio中导入opencv的项目
  6. Android之通过ActivityLifecycleCallbacks判断程序是否运行在后台
  7. python少儿编程课件ppt_Python课程第五期
  8. Docker运行参数详解
  9. cdq分治(bzoj 1176: [Balkan2007]Mokia bzoj 2683: 简单题)
  10. bzoj 1800: [Ahoi2009]fly 飞行棋
  11. 时序算法—AR、MA、ARMA和ARIMA模型以及Auto ARIMA
  12. 【图像分割】基于matlab GUI多种阈值图像分割(带面板)【含Matlab源码 733期】
  13. 局域网抢速,局域网抢网速软件下载,p2p终结者和反p2p终结
  14. c语言 鼠标指针图标,WIN7系统鼠标图案DIY!自己动手,美不胜收!-win7鼠标指针...
  15. Windows javaw进程占用cpu资源100% 导致电脑卡顿
  16. python垃圾分类图像处理_教你用Python轻松解决垃圾分类这个头疼的问题!
  17. 【解决】如何将腾讯QLV格式的视频转换成MP4
  18. 2021年完美解决Gradle下载慢的问题(Android Studio)
  19. 电影特效是计算机专业吗,像那种专门为电影做特效的电脑最起码要达到什么样的配置呢?...
  20. iPad Air越狱恢复教程 iPad Air越狱后怎么恢复

热门文章

  1. iphone新旧手机数据传输已取消_OPPO 将推全新概念手机/可折叠 iPhone 已在测试生产中...
  2. 夜天之书 #64 开发者体验的基础设施
  3. ABBYY FineReader 12完整功能列表汇总(一)
  4. 生产者消费者操作系统实验报告用C语言来实现
  5. 人工智能如何革新医疗
  6. 国科大论文latex模板中可能的注意事项
  7. 第四战,三打祝家庄(注意,此三打是统称一打、二打、三打祝家庄这几仗)
  8. CRAB快速开发平台学习教程《一》:环境搭建篇
  9. 永磁同步电机(pmsm,无位置传感器控制(扩张状态观测器,超螺旋滑模,扩展卡尔曼滤波)
  10. mac抹掉磁盘重装系统未能与服务器取得联系_苹果电脑安装mac系统详细教程