完成一个手机验证码功能

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

  • 流程分析

  • 代码实现

public class PhoneCode {public static void main(String[] args) {//模拟验证码发送verifyCode("12345678910");}//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中,设置过期时间public static void verifyCode(String phone) {//连接redisJedis jedis = new Jedis("47.107.53.146", 6379);//拼接key//手机发送次数String countKey = "VerifyCode" + phone + ":count";//验证码keyString codeKey = "VerifyCode" + phone + ":code";//每个手机只能发送三次String count = jedis.get(countKey);if (count == null){//没有发送次数,说明是第一次发送//设置发送次数是1jedis.setex(countKey, 24*60*60, "1");}else if (Integer.parseInt(count) <= 2) {//发送次数 +1jedis.incr(countKey);}else if (Integer.parseInt(count) > 2) {//发送三次,不能再发送了System.out.println("今天的发送次数已经超过三次");jedis.close();return;}//发送验证码放到 redis 中String vscode = getCode();jedis.setex(codeKey, 120, vscode);jedis.close();}//3.验证码校验public static void getRedisCode(String phone,String code) {//从redis获取验证码Jedis jedis = new Jedis("47.107.53.146",6379);//验证码keyString codeKey = "VerifyCode"+phone+":code";String redisCode = jedis.get(codeKey);//判断if(redisCode.equals(code)) {System.out.println("成功");}else {System.out.println("失败");}jedis.close();}
}
  • 运行后:

  • 查看服务器上的 key

  • 验证码校验

    输出:成功

  • 第二次发送验证码后:

  • 第三次后:

  • 第四次后就会出现

Redis实现手机验证码功能相关推荐

  1. 实现手机验证码功能(Redis)

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

  2. Redis:09-Redis_Jedis实现手机验证码功能

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

  3. springboot+vue实现手机验证码功能

    springboot+vue实现手机验证码功能 榛子云短信平台用户中心注册登录(有免费的一条消息,剩下的需要买)(阿里云个人得备案) 在springboot中加入依赖,用到了redis,阿里的fast ...

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

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

  5. thinkphp实现发送手机验证码功能!

    php实现发送手机验证码功能如下: //发送手机验证码public function sendPhoneCodeMessage(){ vendor('SendPhoneCode.SendCode',' ...

  6. 项目实践——零基础实现手机验证码功能

    文章目录 1.阿里云短信服务 1.1.开通阿里云短信服务 1.2.添加签名管理与模板管理 1.3.编写发送短信接口 新建短信微服务 1.4.免费试用产品 2.腾讯云短信服务 2.1.注册微信公众号 2 ...

  7. 基于登录注册用ajax实现手机验证码功能

    文章目录 基于登录发送验证码 输入验证码后完成登录逻辑 用户登录条件 基于注册发送验证码 输入验证码后完成注册逻辑 用户注册条件 这几天做的项目接触到了用手机验证码完成一些功能,例如登录.注册.以及修 ...

  8. redis缓存手机验证码案例

    一.发送验证码 二.验证码校验 验证码使用过后,立即删除. 三.案例源码 import redis.clients.jedis.Jedis;import java.util.Random;/*** @ ...

  9. java实现发送手机验证码功能

    1. 进入秒嘀科技(http://www.miaodiyun.com/),注册一个账号 2. 注册好之后,点击 用户中心 -> 账户管理,就会进入如下界面 (顺便提一下,新注册的用户,平台会免费 ...

最新文章

  1. CSS中绝对定位依据谁进行定位?
  2. Android异步消息处理机制
  3. Vitamio中文API文档(1)—— MediaStore
  4. GraphAPI 1.0中新增加的Teams API
  5. Problem C: 结构体---点坐标结构体
  6. 小米荣耀互怼:头部高管们神仙打架 到底谁是谁非?
  7. ECMAScript 6学习总结(1)——ECMAScript 6入门简介
  8. 实例具体解释Django的 select_related 和 prefetch_related 函数对 QuerySet 查询的优化(二)...
  9. Selenium自动化测试-3.元素定位(3)
  10. 前端的UI设计与交互之反馈示篇
  11. android发送json格式,如何在Android上以JSON发送文件?
  12. 解析Disruptor:写入ring buffer
  13. nessus8.9.0百度网盘_免费百度网盘SVIP共享20.1.19
  14. 笔记1-fedora14初识及vmware-tool安装
  15. java 运维系统_Java 应用运维
  16. matlab 水文断面,基于MATLAB的河道横断面的绘制
  17. 【历史上的今天】11 月 22 日:PHP 创始人诞生;2020 年图灵奖得主出生;IE 2.0 发布
  18. ios怎么更新测试软件,苹果iOS13 beta3测试版升级教程 iOS13 beta3更新方法
  19. javax.crypto.Cipher线程安全问题
  20. 超快激光微加工的Burst Mode和PSO功能

热门文章

  1. 顺时针(逆时针)填充矩阵
  2. 沟通新法则:请不要一个人吃饭
  3. 异常问题解决方案经验总结
  4. SSD固态硬盘的闪存芯片颗粒介绍
  5. [TJOI2013]松鼠聚会
  6. 概述史:五胡十六国过这么乱的历史怎么可能搞得懂?6000字短文帮您整个清清楚楚...
  7. 【JVM高级特性与最佳实践(第3版)-周志明】-学习记录之【自动内存管理】
  8. 什么是Java的灵魂?了解JVM的结构模型,生命周期,Java王朝虚拟机的更替,各家大厂虚拟机百花齐放
  9. 【51】PWM控制使用
  10. 一文搞懂 | ARM微架构的变化