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

本文介绍了如何实现一个手机验证码功能,包括生成6位数字验证码、限制每个手机号每天最多发送三次以及进行验证码校验。使用Java的Random类生成验证码,通过Redis存储并设置过期时间,利用incr方法计数请求次数。当请求超过限制或验证码输入错误时,系统将返回相应的错误信息。整个流程通过单元测试确保了功能的正确性。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

完成一个手机验证码功能

要求:

1、输入手机号,点击发送后随机生成6位数字码,2分钟有效。

2、输入验证码,点击验证,返回成功或失败。

3、每个手机号每天只能输入3次。

思路:

  1. 1. 随机生成6位数字码:使用Random类的nextInt()方法;
  2. 2. 2分钟有效:可以放入Redis中,设置其过期时间,单位为秒;
  3. 3. 每个手机号每天只能输入3次,通过redis的incr()方法,超过2就显示错误。

三个步骤:

第一:

生成一个6位数字的验证码,代码部分如下

测试:

第二:

每个手机每天只能发送三次,验证码放到redis中,设置过期时间120s。

代码部分如下:

countKey是手机号码所请求验证码的次数。

codeKey是生成的随机码

 

第三:

验证码校验。

代码部分:

整体测试:

在main方法中测试一下验证码发送,点击运行。

在Xshell中我们可以通过keys *查看现在所生成的全部键和生成的随机码:

 

在main方法中测试一下验证码校验

测试同一个号码多次请求验证码

测试请求验证码超过三次时

 

以上所有要求也就实现啦~ 达到预期效果!

 

 

 

 

 

 

 

 

 

 

 

 

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值