Redis模仿发送手机验证码功能

流程图

一:添加jedis依赖包

二:测试连接Redis服务是否成功

// 创建Jedis对象用于连接Redis服务(在服务器上通过redis-server需要指定配置文件:redis-server /etc/redis.conf)
Jedis jedis = new Jedis("192.168.119.128", 6379);
String value = jedis.ping();
System.out.println(value);
jedis.close();

三:编写生成验证码方法

/**
     * 生成验证码的方法
     * @return code
     */
    public static String getCode() {
        Random random = new Random();
        String code = "";
        for (int i = 0; i < 6; i++) {
            int num = random.nextInt(10);
            code += num;
        }
        System.out.println(code);
        return code;
    }

四:编写发送验证码方法

/**
     * 用户点击生成验证码并将其添加到redis中
     * @param phone
     */
    public static void sendVerifyCode(String phone) {
        Jedis jedis = new Jedis("192.168.119.128", 6379);

        // 手机号码的key,获取手机号码发送验证码次数
        String countKey = "VerifyCode" + phone + ":count";
        // 验证码的key,获取手机号码的验证码
        String codeKey = "VerifyCode" + phone + ":code";

        // 获取countKey判断当前手机号码是否可以发送验证码
        String count = jedis.get(countKey);
        if (count == null) {
            jedis.setex(countKey, 24 * 60 * 60, "1");
        } else if (Integer.parseInt(count) <= 2) {
            jedis.incr(countKey);
        } else if (Integer.parseInt(count) > 2) {
            System.out.println("当前手机号发送验证码次数超过上限,请明天再发送验证码");
            jedis.close();
        }

        String code = getCode();
        jedis.setex(codeKey, 120, code);

        jedis.close();
    }

五:编写校验验证码方法

/**
     * 用户输入手机号以及验证码进行校验
     * @param phone
     * @param code
     */
    public static void CustomerVerifyCode(String phone, String code) {
        Jedis jedis = new Jedis("192.168.119.128", 6379);

        String codeKey = "VerifyCode" + phone + ":code";
        String phoneVerifyCode = jedis.get(codeKey);

        if (phoneVerifyCode.equals(code)) {
            System.out.println("校验成功!");
        } else {
            System.out.println("校验失败!");
        }

        jedis.close();
    }

到此这篇关于Redis模仿手机验证码发送的文章就介绍到这了,更多相关Redis发送手机验证码内容请搜索我们以前的文章或继续浏览下面的相关文章希望大家以后多多支持我们!

(0)

相关推荐

  • 实例详解Spring Boot实战之Redis缓存登录验证码

    本章简单介绍redis的配置及使用方法,本文示例代码在前面代码的基础上进行修改添加,实现了使用redis进行缓存验证码,以及校验验证码的过程. 1.添加依赖库(添加redis库,以及第三方的验证码库) <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-redis</artifactId> </dependency&

  • Jedis操作Redis实现模拟验证码发送功能

    目录 jedis的创建 1.先启动redis 如果报 2.创建一个maven工程 3.创建一个class jedis实现模拟验证码 相关数据类型测试 Key String List set hash zset jedis的创建 1.先启动redis 如果报 那么说明你redis服务器服务器端还没打开 //启动服务端 redis-server /etc/redis.conf //启动客户端 redis-cli 如果启动成功,就是这样 2.创建一个maven工程 导入Jedis依赖 <depende

  • 如何使用Java redis实现发送手机验证码功能

    要求: 1.输入手机号,点击发送后随机生成6位数字码,2分钟有效 2.输入验证码,点击验证,返回成功或失败 3.每个手机号每天只能输入3次 代码如下 import redis.clients.jedis.Jedis; import java.util.Random; public class ValidationTest { public static void main(String[] args) { //getValidation("15005076571"); //checkV

  • Redis模仿发送手机验证码功能

    流程图 一:添加jedis依赖包 二:测试连接Redis服务是否成功 // 创建Jedis对象用于连接Redis服务(在服务器上通过redis-server需要指定配置文件:redis-server /etc/redis.conf) Jedis jedis = new Jedis("192.168.119.128", 6379); String value = jedis.ping(); System.out.println(value); jedis.close(); 三:编写生成验

  • C#实现发送手机验证码功能

    之前不怎么了解这个,一直以为做起来很复杂. 直到前两天公司要求要做这个功能. 做了之后才发现 这不过就是一个POST请求就能实现的东西.现在给大家分享一下,有不足之处还请多多指教. 废话不多说 直接上代码. 1.先获取一个随机数字验证码(这里是6位数),然后编辑好需要发送的内容. 这里还做了个手机号码合法性的验证. public string VerificationCode(string mobile) { if (IsHandset(mobile)) { string code = new

  • django 发送手机验证码的示例代码

    一.流程分析: 1.用户在项目前端,输入手机号,然后点击[获取验证码],将手机号发到post到后台. 2.后台验证手机号是否合法,是否已被占用,如果通过验证,则生成验证码,并通过运行脚本,让短信运营商向该手机号,发送该验证码,如果没通过验证,则返回错误信息 3.用户收到短信验证码以后,再次将所有信息post到后台. 4.后台验证各个数据,通过验证则完成实名制认证,如果没通过则返回错误信息. 总结,一次实名验证,需要两次ajax+post 二.对接短信商: 1.在云片网端: 1.注册云片网 地址:

  • 使用阿里大于(大鱼)平台进行发送手机验证码的流程

    昨天看了一篇博文利用阿里云大于平台给手机发送验证码和短信,当时自己就很感兴趣,因为这个技术很有用,相当于以后做用户注册的功能可以进行短信验证,并且大于平台的短信收费也很低,我自己都没有花钱.现在来分享一下我昨天做的流程吧 首先去登录阿里大于: http://www.alidayu.com/ 没有号的就注册一个!用淘宝就可以登录了,相信一般人都是不需要注册的,还可以用支付宝,微博账号登陆,我用的是支付宝扫码登录.在登录成功之后显示下图界面. 点击页面的控制台,然后会跳到另一个页面,然后你会看大使用

  • SpringBoot发送邮箱验证码功能

    一.开启QQ邮箱服务 (1)登陆QQ找到设置,点击账户 (2)往下拉,开启POP3/SMTP服务和IMAP/SMTP服务 当开启IMAP/SMTP会有一串密文密码,保存起来后面要用到 二.spring boot配置邮箱服务   在spring boot的配置文件application.yml中添加以下配置 spring: mail: username: 1963342385@qq.com password: yqc...fchj host: smtp.qq.com password是在开启邮箱服

  • Java实现SMS短信通发送手机验证码案例讲解

    注册网建短信通账号 链接:http://sms.webchinese.cn/ 设置短信签名 注意不要乱写别的公司等,会被视为诈骗信息 设置短信密钥,发送时代替密码 Java方式实现 导入依赖 commons-httpclient-3.1.jar 编写SmsUtil工具类 import org.apache.commons.httpclient.HttpClient; import org.apache.commons.httpclient.NameValuePair; import org.ap

  • Java实现发送短信验证码+redis限制发送的次数功能

    java实现短信验证码发送,由于我们使用第三方平台进行验证码的发送,所以首先,我们要在一个平台进行注册.这样的平台有很多,有的平台在新建账号的时候会附带赠几条免费短信.这里我仅做测试使用(具体哪个平台见参考三,很简单,注册账号就行,记得添加短信签名). 另外,在实际项目中,如果有人恶意攻击,不停的发送短信验证码,就会造成很大的损失.故对发送次数做一定的限制就非常必要,这里我们限制一个手机号一天可以发多少短信和短信平台无关. 这里采用的是存redis来实现这一个功能.就是每次调用发送验证码这个接口

  • nodejs实现发送邮箱验证码功能

    本文实例为大家分享了nodejs实现发送邮箱验证码的具体代码,供大家参考,具体内容如下 今天做了个小demo,是用nodejs实现注册时(当然在别的地方也是可以用的)的邮箱验证功能,大体就是往指定的邮箱发送六位验证码.以下是详细步骤. 1.使用模块:nodemailer 安装:npm install nodemailer --save 2.首先是来写一下前台注册界面,不说了,先上图.(不想看这一段的话直接跳到最后看邮箱验证码的实现) 然后实现以下以下效果(看图先),就是点击发送验证码时出现一分钟

  • Angular6 发送手机验证码按钮倒计时效果实现方法

    1.组件中定义两个变量,分别用于控制按钮是否可以点击(countDown)和按钮上的倒计时数字(countDownTime): countDown = false; countDowmTime = 60; // 这里设置倒计时为60S showButtonText = '发送短信验证码': // 可以控制动态改变的按钮提示信息 2.写一个获取短信验证码的方法绑定到页面的获取短信验证码按钮上: getCode(event) { this.validateForm1.controls['phone'

随机推荐