首页 > 其他分享 >7、模拟验证码

7、模拟验证码

时间:2022-11-11 23:14:27浏览次数:32  
标签:code String 验证码 发送 codeKey jedis 模拟

截图.png

public class PhoneCode {

public static void main(String[] args) {

//模拟验证码发送

verifyCode("12345678901");

//getRedisCode("12345678901","012170");

}

//3 校验

public static void getRedisCode(String phone,String code){

//从redis中获取验证码

Jedis jedis = new Jedis("175.178.27.250",6379);

String codeKey = "VeriCode"+phone+":code";

String redisCode = jedis.get(codeKey);

//判断

if (redisCode.equals(code)){

System.out.println("成功");

}else {

System.out.println("失败");

}

jedis.close();

}

//2 每个手机每天只能发送三次,验证码放到redis中,设置过期时间

public static void verifyCode(String phone){

//连接Jedis

Jedis jedis = new Jedis("175.178.27.250",6379);

//拼接key

//手机发送次数key

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

//验证码key

String codeKey = "VeriCode"+phone+":code";

//每个手机每天只能发送三次

String count = jedis.get(countKey);

String vcode = getCode();

if(count==null){

//第一次发送,设置发送次数为1

jedis.setex(countKey,24*60*60,"1");

//将发送的验证码放入redis

jedis.setex(codeKey,120,vcode);

}else if(Integer.parseInt(count) <= 2){

//发送次数+1

jedis.incr(countKey);

//将发送的验证码放入redis

jedis.setex(codeKey,120,vcode);

}else if(Integer.parseInt(count)>2){

//超过三次不能发送

System.out.println("您的操作过于频繁,请稍后再试");

jedis.close();

return;

}

}

//1 生成六位验证码

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;

}

}

标签:code,String,验证码,发送,codeKey,jedis,模拟
From: https://www.cnblogs.com/tanhongwei/p/16882342.html

相关文章

  • 【luffy】登录注册前端页面,腾讯短信功能验证,短信验证码,登录接口
    目录1.登录接口两个问题2.登录注册模拟框3.腾讯短信功能二次封装3.1脚本测试发短信3.2把发送短信封装成包1.登录接口两个问题1.使用authenticate只能使用usernam......
  • Promise 的模拟实现
    1.为什么会有Promise当我们多次进行有依赖的网络请求或者文件请求时,很可能会造成代码的层层嵌套,导致回调地狱的出现:$.ajax({url:"xxx",success:function(......
  • 页面加验证码才能访问
    <script>  functionyanzhengmima(){    varfuwuqi_pwd="zixin"//密码    varmima="";//用户输入的密码    if(diyici){   ......
  • 广州华锐互动:vr模拟电力场景安全应急培训,为电力行业保驾护航
    近年来,电力行业得到快速发展,这对于电力安全管理提出了更高的要求,只有把电力安全管理工作做好,才能促进电力行业的健康发展。目前电力生产安全事故并不少见,这也反映了电力行......
  • PHP构造验证码
    代码如下:<?phpheader('Content-type:image/jpeg');$width=120;$height=40;$element=array('a','b','c','d','e','f','g','h','i','j','k','m......
  • [ Linux ] 缓冲区的理解 以及简易模拟实现封装C标准库
    在输出重定向的时候为什么必须fflush(stdout)才能将内容刷新到指定文件呢?我们当时回答是因为存在缓冲区。那么本篇文章我们将重点了解认识一下缓冲区。0.什么是缓冲区?缓冲区......
  • 算法模拟测试网站
    超好用的算法模拟网站https://alchemist-al.com/各种算法手动步骤模拟 ......
  • 模拟与高精度题解
    此题目特征为储存数字超过longlong类型,c++无法用一个变量存储全部数字解法为开数组来储存各个位上的数字1.字符高精度直接以两种方式处理字符即可#include<bits/std......
  • Android基于坐标对View进行模拟点击事件
    在Android中,我们对于View进行模拟点击事件,很容易,比如调用​​View.performClick​​即可。但是有些时候,我们想要更加精细的点击,比如View的某一区域或者某一点进行点击。比如......
  • 记一次HTTPClient模拟登录获取Cookie的开发历程
    记一次HTTPClient模拟登录获取Cookie的开发历程环境:​ springboot:2.7​ jdk: 1.8​ httpClient:4.5.13设计方案​ 通过新建一个空的cookie库创建出一个Http客户......