时间:2021-05-19
要求:
1、输入手机号,点击发送后随机生成6位数字码,2分钟有效
2、输入验证码,点击验证,返回成功或失败
3、每个手机号每天只能输入3次
代码如下
import redis.clients.jedis.Jedis;import java.util.Random;public class ValidationTest { public static void main(String[] args) { //getValidation("15005076571"); //checkValidation("769897","15005076571"); } static void getValidation(String tel) { //主机、端口 Jedis jedis = new Jedis("myhost", 6379); //密码 jedis.auth("mypassword"); try { //获取电话号码 String phoneNo = tel; //本人用1库进行测试 jedis.select(1); String countKey = phoneNo + ":count"; String codeKey = phoneNo + ":code"; //获取指定的电话号码发送的验证码次数 String cnt = jedis.get(countKey); //对次数进行判断 if (cnt == null) { //没有发送过验证码 jedis.setex(countKey, 60 * 60 * 24, "1"); //发送验证码,假设生成的验证码 StringBuffer code = new StringBuffer(); for (int i = 0; i < 6; i++) { code.append(new Random().nextInt(10)); } System.out.println("code:" + code); //缓存中添加验证码 jedis.setex(codeKey, 60 * 2, code.toString()); } else { if (Integer.parseInt(cnt) < 3) { //发送验证码,假设生成的验证码 StringBuffer code = new StringBuffer(); for (int i = 0; i < 6; i++) { code.append(new Random().nextInt(10)); } System.out.println("code:" + code); //缓存中添加验证码 jedis.setex(codeKey, 60 * 2, code.toString()); //递增手机发送数量 jedis.incr(countKey); } else { //返回超出3次,禁止发送 System.out.println("超出3次,禁止发送"); } } } catch (Exception e) { //这边其实是需要回滚下redis e.printStackTrace(); } finally { //关闭redis if (jedis != null) { jedis.close(); } } } static void checkValidation(String code, String tel) { Jedis jedis = null; try { jedis = new Jedis("myhost", 6379); //密码 jedis.auth("mypassword"); jedis.select(1); String codeKey = tel + ":code"; String validation = jedis.get(codeKey); if (validation == null) { System.out.println("验证码未发送或者失效"); } else { if (validation.equals(code)) { System.out.println("验证成功"); } else { System.out.println("验证失败"); } } } catch (Exception e) { e.printStackTrace(); } finally { if (jedis != null) { jedis.close(); } } }}以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持。
声明:本页内容来源网络,仅供用户参考;我单位不保证亦不表示资料全面及准确无误,也不保证亦不表示这些资料为最新信息,如因任何原因,本网内容或者用户因倚赖本网内容造成任何损失或损害,我单位将不会负任何法律责任。如涉及版权问题,请提交至online#300.cn邮箱联系删除。
这里实现我使用到了struts2模拟一个登录功能来验证java实现的验证码功能。Java实现验证码的步骤:1、创建RandomImageGenerator.ja
本文首先分析手机发送验证码的原理,再对javascript发送短信验证码予以实现,具体思路如下:实现点击“发送验证码”按钮后,按钮依次显示为“59秒后重试”、“
实现步骤1:Java后台生成一张随机数字/字母/汉字验证码的图片。2:存入redis或者session。3:用户输入验证码跟redis取出数据做比对。图片生成工
1、构造手机验证码:使用random对象生成要求的随机数作为验证码,例如4位验证码:1000~9999之间随机数;2、使用接口向短信平台发送手机号和验证码数据,
有关阿里云通信短信服务验证码的发送,请参考我的另一篇文章Springboot实现阿里云通信短信服务有关短信验证码的发送功能思路用户输入手机号后,点击按钮获取验证