Redis学习3:使用Reids实现验证码校验功能
Reids实现验证码校验功能设计一个函数实现生成验证码功能//生成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;}
·
Reids实现验证码校验功能
-
设计一个函数实现生成验证码功能
//生成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; }
-
让验证码放入redis中去,并添加验证码规则
//让每个手机每天只能发送三次,验证码放入到redis中去,设置过期时间 public static void verifyCode(String phone){ //连接redis Jedis jedis=new Jedis("192.168.89.131",6379); //拼接key //手机发送次数key String countKey="VerifyCode"+phone+":count"; //验证码key String codeKey="VerifyCode"+phone+":code"; //每个手机每天只能发送三次 String count=jedis.get(countKey); if (count==null){ //没有发送次数,第一次发送 //设置发送次数为1 jedis.setex(countKey, 24*60*60, "1"); }else if (Integer.parseInt(count)<=2){ //发送次数+1 jedis.incr(countKey); }else if (Integer.parseInt(count)>2){ //发送了三次,不能再发送 System.out.println("今天的发送次数已达上限"); jedis.close(); }//发送验证码到redis里面 String vcode=getCode(); jedis.setex(codeKey, 120,vcode);//过期时间 jedis.close(); }
-
验证码校验
//验证码校验 public static void getRedisCode(String phone,String code){ //从redis中获取验证码 Jedis jedis=new Jedis("192.168.89.131",6379); //验证码key String codeKey="VerifyCode"+phone+":code"; String redisCode=jedis.get(codeKey); //判断 if (redisCode.equals(code)){ System.out.println("成功"); }else { System.out.println("失败"); } jedis.close(); }
运行:
public static void main(String[] args) {
//模拟验证码发送
// verifyCode("13678765435");
//校验
getRedisCode("13678765435","786239");
}
更多推荐
已为社区贡献2条内容
所有评论(0)