【redis】模拟手机发送验证码
要求:
1、输入手机号,点击发送后随机生成6位数字码,2分钟有效
2、输入验证码,点击验证,返回成功或失败
3、每个手机号每天只能发送3次
分析:
- 随机生成6位数数字码: 使用Ramdom
- 验证码2分钟有效: 将验证码存到redis中设置120秒过期时间
- 判断验证码是否正确:取出redis中存的验证码是否和输入验证码一致
- 每个手机号只能发送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】模拟手机发送验证码相关推荐
- springboot集成redis模拟手机发送验证码进行验证
1.配置redis依赖 因为springboot框架帮们集成了大部分的依赖和它自动配置类的特点,我们只需要在maven中配置后就可以使用了,极大的挺高了我们开发的效率! <dependency& ...
- Redis——模拟手机验证码发送
使用redis模拟手机验证码发送,规定一个手机号一天只能请求三次验证码,且每次请求的验证码只有两分钟就会过期 1.首先写一个函数随机产生六位验证码,使用random函数 //随机生成六位验证码publ ...
- 健康管理系统第七天(移动端_体检预约(手机号校验、发送验证码之后30秒倒计时效果、生成验证码、向手机发送验证码))
一.体检预约流程 用户可以通过如下操作流程进行体检预约: 1.在移动端首页点击体检预约,页面跳转到套餐列表页面 2.在套餐列表页面点击要预约的套餐,页面跳转到套餐详情页面 3.在套餐详情页面点击立即预 ...
- 手机发送验证码的业务逻辑探究-主要是安全性,响应性
手机发送验证码的业务逻辑探究-主要是安全性,响应性 这样一来,只要知道静态的验证码是什么,脚本就可以轻松填写正确的验证码. 解决方法: 1后台是否可以限制一个IP发送的次数 2限定发送验证码的一分钟的 ...
- html如何发送验证码到手机,页面效果,给手机发送验证码
html> 定时发送验证码 var wait = 5; function send(o) { if(wait==5){ //向服务器发送请求,给手机发送验证码 // $.post("/ ...
- 网站登录密码忘记后,通过向手机发送验证码实现找回密码的实现方法
今天我想了一天如何实现网站用户在忘记了密码后,如何通过向手机发送验证码来重新设置密码.验证码的验证以及生成都已经做好了,现在主要是解决如何向用户手机发送短信.显然这需要一个第三方提供的短信接口,来帮助 ...
- springboot向手机发送验证码
** springboot向手机发送验证码 ** 1.在腾讯云里面申请短信签名,短信模板 在百度搜索腾讯云,进入到腾讯云里面,在产品里搜索短信 然后找到国内短信 创建签名和模板,创建签名可以用公众号. ...
- html给手机号发送验证码,js如何实现手机发送验证码功能
js如何实现手机发送验证码功能 发布时间:2021-06-21 12:24:46 来源:亿速云 阅读:82 作者:小新 这篇文章将为大家详细讲解有关js如何实现手机发送验证码功能,小编觉得挺实用的,因 ...
- 微信小程序 授权登录+手机发送验证码+jwt验证接口(laravel8+php)
参考博客 小程序授权登录并 laravel7(laravel8) token 应用 - 王越666 - 博客园 微信小程序sku商品规格选择器 - 简书 微信小程序 和 laravel8 实现搜索后分 ...
最新文章
- c/c++ ide clion安装编译器
- Linear regression with one variable算法实例讲解(绘制图像,cost_Function ,Gradient Desent, 拟合曲线, 轮廓图绘制)_矩阵操作...
- python数据挖掘入门与实战代码
- linux字体栅格化,响应式开发---网页的布局方式、媒体查询、栅格化布局、less语言...
- visual studio中导入opencv的项目
- Android之通过ActivityLifecycleCallbacks判断程序是否运行在后台
- python少儿编程课件ppt_Python课程第五期
- Docker运行参数详解
- cdq分治(bzoj 1176: [Balkan2007]Mokia bzoj 2683: 简单题)
- bzoj 1800: [Ahoi2009]fly 飞行棋
- 时序算法—AR、MA、ARMA和ARIMA模型以及Auto ARIMA
- 【图像分割】基于matlab GUI多种阈值图像分割(带面板)【含Matlab源码 733期】
- 局域网抢速,局域网抢网速软件下载,p2p终结者和反p2p终结
- c语言 鼠标指针图标,WIN7系统鼠标图案DIY!自己动手,美不胜收!-win7鼠标指针...
- Windows javaw进程占用cpu资源100% 导致电脑卡顿
- python垃圾分类图像处理_教你用Python轻松解决垃圾分类这个头疼的问题!
- 【解决】如何将腾讯QLV格式的视频转换成MP4
- 2021年完美解决Gradle下载慢的问题(Android Studio)
- 电影特效是计算机专业吗,像那种专门为电影做特效的电脑最起码要达到什么样的配置呢?...
- iPad Air越狱恢复教程 iPad Air越狱后怎么恢复
热门文章
- iphone新旧手机数据传输已取消_OPPO 将推全新概念手机/可折叠 iPhone 已在测试生产中...
- 夜天之书 #64 开发者体验的基础设施
- ABBYY FineReader 12完整功能列表汇总(一)
- 生产者消费者操作系统实验报告用C语言来实现
- 人工智能如何革新医疗
- 国科大论文latex模板中可能的注意事项
- 第四战,三打祝家庄(注意,此三打是统称一打、二打、三打祝家庄这几仗)
- CRAB快速开发平台学习教程《一》:环境搭建篇
- 永磁同步电机(pmsm,无位置传感器控制(扩张状态观测器,超螺旋滑模,扩展卡尔曼滤波)
- mac抹掉磁盘重装系统未能与服务器取得联系_苹果电脑安装mac系统详细教程