笔记:redis--生成数字验证码并验证

/**
 * 验证验证码是否正确
 *
 * @param phone
 * @param code
 */
public void getRedisCode(String phone, String code) {
    Jedis jedis = new Jedis("服务器ip", 6379); //连接redis

    if (jedis.get("verifyCode" + phone + ":code").equals(code)) {
        System.out.println("验证成功");
    }else System.out.println("验证失败");

    jedis.close();
}

/**
 * 验证码存入redis
 *
 * @param phone
 */
public void verifyCode(String phone) {
    Jedis jedis = new Jedis("服务器ip", 6379); //连接redis

    String countKey = "verifyCode" + phone + ":count";

    //每个号码一天之内只能发送3次
    if (jedis.get(countKey) == null) {
        jedis.setex(countKey, 24 * 60 * 60, "1");
    } else if (Integer.parseInt(jedis.get(countKey)) < 3) {
        jedis.incr(countKey);
    } else {
        System.out.println("生成验证码超过三次");
        jedis.close();
        return;
    }

    String code = getCode();
    String codeKey = "verifyCode" + phone + ":code";

    //存入code,有效期5分钟
    jedis.setex(codeKey, 5 * 60, code);
    System.out.println("生成验证码成功");
    jedis.close(); //关闭
}

/**
 * 生成6位随机数
 *
 * @return
 */
public String getCode() {
    Random random = new Random();
    String code = "";
    for (int i = 0; i < 6; i++) {
        int num = random.nextInt(10);
        code += num;
    }
    return code;
}
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。