import org.junit.Test;
import redis.clients.jedis.Jedis;
import java.util.Random;
import java.util.Set;
public class redisDemo {
@Test
public void t1(){//获取验证码
System.out.println(sendCode("13356667124"));
}
@Test
public void t2(){//校验
verifyCode("13356667124","824299");
}
//3.校验验证码方法
public static void verifyCode(String phone,String code){
Jedis jedis = new Jedis("120.79.149.238",6379);
String codeKey = phone+"verifyCode";
String countKey = phone+"verifyCount";
if(jedis.get(codeKey).toString().equals(code)){
System.out.println("验证成功");
}else{
System.out.println("验证码输入有误");
}
}
//2.用户获取验证码-->每个手机每天只能发送三次,验证码放到redis中,设置过期时间
public static String sendCode(String phone){
Jedis jedis = new Jedis("120.79.149.238",6379);
String codeKey = phone+"verifyCode";
String countKey = phone+"verifyCount";
//如果redis没有这个key则添加
if(jedis.get(codeKey) == null){
//验证码
String code = getCode().toString();
//在redis中设置 验证码
jedis.setex(codeKey,120,code);
//同时设置当前手机号的获取验证码的次数
jedis.setex(countKey,24*60*60,"1");
//关闭连接 结束方法
jedis.close();
return code;
}else if(Integer.parseInt(jedis.get(countKey)) < 3){//如果有则:
String code = getCode().toString();
jedis.setex(codeKey,60*2,code);
jedis.incr(countKey);
//关闭连接 结束方法
jedis.close();
return code;
}else{
jedis.close();
return "今日发送次数超过3次,请明日再来";
}
}
//1.生成6位随机数
public static StringBuffer getCode(){
Random random = new Random();
StringBuffer sbf = new StringBuffer();
for (int i=0;i<6;i++){
int val = random.nextInt(10);
sbf.append(val);
}
return sbf;
}
}
(redis )简单手机验证码功能
最新推荐文章于 2024-01-13 11:31:22 发布