概述
import cn.hutool.core.util.RandomUtil;
import redis.clients.jedis.Jedis;
import java.util.Scanner;
/**
* @author oliverloki
* @Description: TODO
* @date 2022年06月26日 23:16
*/
public class 模拟验证码 {
public static void main(String[] args) {
System.out.println("请输入手机号来获取验证码");
//生成验证码
String phone = new Scanner(System.in).nextLine();
verify(phone);
//登录redis获取验证码
Jedis jedis = new Jedis("43.138.51.80", 6379);
jedis.auth("123456");
String ver = jedis.get("Verifycode" + phone + "code");
//发送验证码
System.out.println("您的验证码是:"+ver);
System.out.println("请输入验证码");
//判断是否正确
diff(phone,new Scanner(System.in).nextLine());
jedis.close();
}
public static void diff(String phone,String code){
//从redis获取验证码并比较
Jedis jedis = new Jedis("43.138.51.80", 6379);
jedis.auth("123456");
//获取真实验证码
String verifyKey= "Verifycode"+phone+"code";
String s = jedis.get(verifyKey);
//比较输入验证码
if (s.equals(code)){
System.out.println("成功");
}else {
System.out.println("失败");
}
jedis.close();
}
//每个手机每天发送三次,验证码放入redis
public static void verify(String phone){
//key
String countKey = "Verifycode"+phone+"count";
String verifyKey= "Verifycode"+phone+"code";
Jedis jedis = new Jedis("43.138.51.80", 6379);
jedis.auth("123456");
String s = jedis.get(countKey);
if (jedis.get(countKey)==null){
jedis.setex(countKey,24*60*60,"1");
}else if (Integer.parseInt(jedis.get(countKey)) <= 2){
jedis.incr(countKey);
}else {//已发送3次
System.out.println("今天已发送三次,次数耗尽");
jedis.close();
return;
}
String verifyCode = verifyCode();
jedis.setex(verifyKey,60,verifyCode);
jedis.close();
}
//生成6位随机数字验证码
public static String verifyCode(){
StringBuilder code = new StringBuilder("");
for (int i = 0; i < 6; i++) {
code.append(RandomUtil.randomInt(10));
}
return code.toString();
}
}
最后
以上就是痴情小海豚为你收集整理的Jedis之Java操作redis实现模拟验证码发送操作的全部内容,希望文章能够帮你解决Jedis之Java操作redis实现模拟验证码发送操作所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
发表评论 取消回复