当前位置: 首页 > news >正文

刘金鹏做网站下载爱南宁app下载

刘金鹏做网站,下载爱南宁app下载,做动图为所欲为的网站,西宁专业网站建设公司限制一分钟内最多发送5次,且每次有效时间是5分钟! String 发送验证码(phoneNumber) {key "shortMsg:limit:" phoneNumber;// 设置过期时间为 1 分钟(60 秒)// 使⽤ NX,只在不存在 key 时才能设置成功bool…

         限制一分钟内最多发送5次,且每次有效时间是5分钟!

String 发送验证码(phoneNumber) {key = "shortMsg:limit:" + phoneNumber;// 设置过期时间为 1 分钟(60 秒)// 使⽤ NX,只在不存在 key 时才能设置成功bool r = Redis 执⾏命令:set key 1 ex 60 nxif (r == false) {// 说明之前设置过该⼿机的验证码了long c = Redis 执⾏命令:incr keyif (c > 5) {// 说明超过了⼀分钟 5 次的限制了// 限制发送return null;}}// 说明要么之前没有设置过⼿机的验证码;要么次数没有超过 5 次String validationCode = ⽣成随机的 6 位数的验证码();validationKey = "validation:" + phoneNumber;// 验证码 5 分钟(300 秒)内有效Redis 执⾏命令:set validationKey validationCode ex 300;// 返回验证码,随后通过⼿机短信发送给⽤⼾return validationCode ;
}
// 验证⽤⼾输⼊的验证码是否正确
bool 验证验证码(phoneNumber, validationCode) {validationKey = "validation:" + phoneNumber;String value = Redis 执⾏命令:get validationKey;if (value == null) {// 说明没有这个⼿机的验证码记录,验证失败return false;}if (value == validationCode) {return true;} else {return false;}
}

在Redis中设置验证码是一种常见且有效的安全措施,主要用于验证用户身份和防止滥用服务。以下是如何在Redis中有效地设置和管理验证码的详细步骤:

  1. 生成验证码
    • 生成方式:通常使用随机算法生成一个固定长度(如4位或6位)的数字或字母组合作为验证码。例如,可以使用Java中的Random类生成一个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;
      }
      
  2. 存储验证码
    • Redis命令:使用SET命令将生成的验证码存储在Redis中,键名通常为“手机号_验证码”,值为验证码字符串本身。同时,为了确保验证码只在一段时间内有效(如1分钟或2分钟),需要使用EXPIRE命令设置验证码的过期时间。
    • 代码示例
      String ip = req.getRemoteAddr();
      String yzm = this.getYzm();
      ValueOperations forValue = rt.opsForValue();
      forValue.set(ip+"_yzm", yzm);
      rt.expire(ip+"_yzm", 60*1000);
      
  3. 发送验证码
    • 发送途径:通过短信网关API发送验证码到用户手机,这通常需要集成第三方短信服务商提供的SDK或API。发送完成后,用户手机会收到一条包含验证码的短信。
    • 注意事项
      • 安全性:确保在发送验证码之前进行必要的验证,如检查手机号格式是否正确,以及是否在短期内重复发送请求。这可以通过在Redis中另外存储发送次数来实现。
      • 限流:为了防止恶意攻击,可以限制每个手机号在一定时间内只能发送有限次数的验证码。具体实现时,可以在Redis中用另一个键记录发送次数,每次发送增加计数器,并检查是否超过限制。
  4. 校验验证码
    • 验证流程:用户在界面输入收到的验证码后,系统从Redis中取出与该手机号关联的验证码进行比对。如果一致且未过期,则验证通过;否则,提示验证码错误或已过期。
    • 代码示例
      public static void getRedisCode(String phone, String code){Jedis jedis = new Jedis("host", 6380);jedis.auth("密码");String codeKey = "VerifyCode" + phone + ":code";String s = jedis.get(codeKey);if (code.equals(s)){System.out.println("验证成功");} else {System.out.println("失败");}
      }
      
  5. 管理验证码
    • 超时处理:由于每个验证码都有有效期,因此需确保过期的验证码能够及时从Redis中清除,以避免数据堆积。通过合理设置Redis的过期时间自动清理机制,可以实现这一点。
    • 性能优化:在高并发场景下,使用Redis集群来分散读写压力,提高验证码的存取效率。

        综上所述,通过上述步骤,可以在Redis中有效地设置和管理验证码,以增强系统的安全性和用户体验。在实际应用中,根据具体需求调整细节,可以达到更好的效果。

http://www.yayakq.cn/news/527161/

相关文章:

  • html做的网站排版导致乱码万网的app叫什么
  • 阿里接外包吗网站开发网站开发制作的流程是什么
  • 精美网站开发方案wordpress 翻页功能
  • 学校网站怎么做门户网站建设需要多少钱
  • 免费 网站 手机西安黑马程序员培训机构
  • 网站建设倒计时单页源码麦客网做网站
  • 做企业网站所需要的资料郑州建站优化
  • 怎么健免费网站建筑网片多少钱一平方
  • 注册网站模板宁波网站建设 熊掌号
  • 建设网站能赚钱浏览收费网站模板
  • 手机怎么做3d短视频网站做微信小程序是不是不用做网站
  • 境外网站 icp备案有哪些网站可以做网站游戏
  • 安卓软件免费下载万源seo
  • 米业做网站的好处我们的网站正在建设之中
  • 本地做网站顺序平台网站模板
  • 网站源码是用什么做的中国建设银行网站荆门网点查询
  • 福建西南建设有限公司网站工业产品设计用什么软件
  • 东莞网站建设方案服务徐州手机网站设计
  • 做网站应该画什么图网站布局类型
  • app网站建设 - 百度wordpress 煎蛋网插件
  • 开发手机端网站模板北京礼品网站建设
  • 泉州制作网站设计温州公司网址公司
  • 网站开发哪家公司好广东建设行业招聘 什么网站
  • 公司做网站排名浙江住房与城乡建设部网站
  • 网站建设与管理课程总结网站怎么做竞价推广
  • 网站建设需要什么岗位巩义网站建设与制作
  • 72建站网手机传奇开服网
  • 移动端h5网站开发框架海外永久不收费的加速器
  • 论述网站推广的方法与技巧深圳网站定制建设
  • 专门做文创产品的网站ui是做什么的