实现思路
- 定义一个方法实现随机二维码
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;
}
- 定义一个方法实现每个手机每天只能发送三次,验证码发到redis中,设置过期时间
public static void verifyCode(String phone) {
Jedis jedis = new Jedis("192.168.80.110", 6379);
// 验证电话次数统计
String countKey = "VerifyCode" + phone + ":count";
// 验证码统计
String codeKey = "VerifyCode" + phone + ":code";
// 获取验证码次数
String count = jedis.get(countKey);
if (count == null) {
// 设置验证码发送次数时间限制
jedis.setex(countKey, 24 * 60 * 60, "1");
} else if (Integer.parseInt(count) <= 2) {
// 设置值自增一
jedis.incr(countKey);
} else if (Integer.parseInt(count)>2) {
System.out.println("今天发送次数超过三次");
jedis.close();
// 超过三次return
return;
}
// 发送验证码放到redis里面
String vcode = getCode();
jedis.setex(codeKey,120,vcode);
jedis.close();
}
- 定义一个方法对验证码进行验证
public static void getRedisCode(String phone, String code){
Jedis jedis = new Jedis("192.168.80.110", 6379);
String codeKey = "VerifyCode" + phone + ":code";
String redisCode = jedis.get(codeKey);
if(redisCode.equals(code)){
System.out.println("成功");
}else {
System.out.println("失败");
}
}
标签:code,java,String,redis,验证码,phone,codeKey,jedis
From: https://www.cnblogs.com/wzxya/p/16644465.html