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

做美食介绍的网站wordpress权限代码

做美食介绍的网站,wordpress权限代码,电商网站怎么做的,国外代码开源网站防刷发送短信验证码接口的五种简单好用方法#xff0c;绝对够用 前端增加图形验证码#xff0c;点击发送按钮后增加60s倒计时#xff0c;60s后才可以再次点击 后端对接口次数校验#xff0c;60s内同一电话号码只能发送一次 // 生成基于电话号码的重试锁定键 String repeat…防刷发送短信验证码接口的五种简单好用方法绝对够用 前端增加图形验证码点击发送按钮后增加60s倒计时60s后才可以再次点击 后端对接口次数校验60s内同一电话号码只能发送一次 // 生成基于电话号码的重试锁定键 String repeatLock StringUtils.join(send_sms:, mobile);// 使用 Redis 的 setIfAbsent 进行原子性操作尝试设置键值对如果键已存在则返回 false if (!redisTemplate.opsForValue().setIfAbsent(repeatLock, locked, 60, TimeUnit.SECONDS)) {// 键已存在表示1分钟内已经发送过短信LOGGER.error(60s内不能重复调用发送短信功能: {}, mobile);throw new RuntimeException(调用发送验证码过于频繁请稍后再试); }后端增加每天次数校验每个电话号码每天只能发送50次 private static final int MAX_DAILY_SMS 50; // 每日最大短信发送数量// 获取当前日期作为短信发送统计的键 String dailySmsKey getDailySmsCountKey(LocalDate.now(),mobile);// 检查每日短信发送数量是否超出限制 long currentDaySmsCount redisTemplate.opsForValue().increment(dailySmsKey,1);//设置过期时间为当天23:59:59 LocalDateTime todayEnd LocalDateTime.of(LocalDate.now(), LocalTime.of(23, 59, 59)); long secondsUntilMidnight ChronoUnit.SECONDS.between(LocalDateTime.now(), todayEnd); redisTemplate.expire(dailySmsKey, secondsUntilMidnight, TimeUnit.SECONDS); if (currentDaySmsCount MAX_DAILY_SMS) {LOGGER.error(今日短信发送已达上限无法再发送给 {}, mobile);throw new RuntimeException(当日短信发送已达上限无法再发送请明日再试); }private String getDailySmsCountKey(LocalDate date,String mobile) {return sms_daily_count: mobile date.format(DateTimeFormatter.ofPattern(yyyy-MM-dd));}对每日超过50次的ip记录下来也可以加入黑名单下次判断请求ip为黑名单中的ip则直接返回失败 前后端增加一个对称加密的校验码 准备密钥 1234abcd约定明文中必须包含指定字符串miyao1234 1.前端调用发送短信接口前通过密钥1234abcd与加密算法将miyao123416位英文字母与数字字符串 例如miyao1234wgly1noKSXg47Mn6 进行加密 生成校验码 vBOLxJj3wl1IyJNUcXOPvaeXvgLZK0b4f3D4J6k9DvE 2.前端调用发送短信接口时将校验码传递给后端 3.后端接收到后对校验码进行解密如果解密失败提示失败 4.如果解密后不包含约定字符串miyao1234 提示失败 5.如果解密后包含约定字符串miyao1234则通过校验此时注意⚠️需要将此校验码存入redis下次如果有相同校验码 则提示重复 /*** 解密后的验证码必须包含此值*/public static final String ENCRYPT_KEY_MAIN_WORD miyao1234;//密钥1234abcdpublic static final String encryptKey 1234abcd;Validate.notBlank(keyDecrypt,发送短信时,校验码不能为空); //进行解密 String decrypt this.decrypt(keyDecrypt); LOGGER.error(发送验证码解密后的校验码decrypt); if(StringUtils.isEmpty(decrypt) || !decrypt.contains(ENCRYPT_KEY_MAIN_WORD)){throw new RuntimeException(发送验证码校验失败); } //设置过期时间为当天23:59:59 // 每个校验码每天只能重复使用一次 String repeatLock StringUtils.join(decrypt_send_sms:, decrypt); LocalDateTime todayEnd LocalDateTime.of(LocalDate.now(), LocalTime.of(23, 59, 59)); long secondsUntilMidnight ChronoUnit.SECONDS.between(LocalDateTime.now(), todayEnd); // 使用 Redis 的 setIfAbsent 进行原子性操作尝试设置键值对如果键已存在则返回 false if (!redisTemplate.opsForValue().setIfAbsent(repeatLock, locked, secondsUntilMidnight, TimeUnit.SECONDS)) {// 键已存在表示校验码重复throw new RuntimeException(校验码重复); }public String decrypt(String decrypt) {if (StringUtils.isBlank(decrypt)) {return decrypt;}return Aes128Utils.decrypt(decrypt, encryptKey, Aes128Utils.EncodeType.CBC, Aes128Utils.Padding.PKCS_7_PADDING);}
文章转载自:
http://www.morning.kwhrq.cn.gov.cn.kwhrq.cn
http://www.morning.fdzzh.cn.gov.cn.fdzzh.cn
http://www.morning.xlmpj.cn.gov.cn.xlmpj.cn
http://www.morning.ndpwg.cn.gov.cn.ndpwg.cn
http://www.morning.qwmdx.cn.gov.cn.qwmdx.cn
http://www.morning.ityi666.cn.gov.cn.ityi666.cn
http://www.morning.ytmx.cn.gov.cn.ytmx.cn
http://www.morning.cxlys.cn.gov.cn.cxlys.cn
http://www.morning.jtnph.cn.gov.cn.jtnph.cn
http://www.morning.jfnlj.cn.gov.cn.jfnlj.cn
http://www.morning.rjfr.cn.gov.cn.rjfr.cn
http://www.morning.ysbrz.cn.gov.cn.ysbrz.cn
http://www.morning.psdbf.cn.gov.cn.psdbf.cn
http://www.morning.dzqr.cn.gov.cn.dzqr.cn
http://www.morning.bnmrp.cn.gov.cn.bnmrp.cn
http://www.morning.rccbt.cn.gov.cn.rccbt.cn
http://www.morning.njstzsh.com.gov.cn.njstzsh.com
http://www.morning.xfjwm.cn.gov.cn.xfjwm.cn
http://www.morning.kdnrp.cn.gov.cn.kdnrp.cn
http://www.morning.mdxwz.cn.gov.cn.mdxwz.cn
http://www.morning.ylrxd.cn.gov.cn.ylrxd.cn
http://www.morning.xsszn.cn.gov.cn.xsszn.cn
http://www.morning.qtsks.cn.gov.cn.qtsks.cn
http://www.morning.dtrz.cn.gov.cn.dtrz.cn
http://www.morning.nmwgd.cn.gov.cn.nmwgd.cn
http://www.morning.bpmmq.cn.gov.cn.bpmmq.cn
http://www.morning.bwznl.cn.gov.cn.bwznl.cn
http://www.morning.sjwzl.cn.gov.cn.sjwzl.cn
http://www.morning.zlhbg.cn.gov.cn.zlhbg.cn
http://www.morning.tlfyb.cn.gov.cn.tlfyb.cn
http://www.morning.mmzfl.cn.gov.cn.mmzfl.cn
http://www.morning.clfct.cn.gov.cn.clfct.cn
http://www.morning.rpms.cn.gov.cn.rpms.cn
http://www.morning.lcqrf.cn.gov.cn.lcqrf.cn
http://www.morning.bpds.cn.gov.cn.bpds.cn
http://www.morning.mumgou.com.gov.cn.mumgou.com
http://www.morning.zcwwb.cn.gov.cn.zcwwb.cn
http://www.morning.xtgzp.cn.gov.cn.xtgzp.cn
http://www.morning.ygwbg.cn.gov.cn.ygwbg.cn
http://www.morning.qqtzn.cn.gov.cn.qqtzn.cn
http://www.morning.hxxzp.cn.gov.cn.hxxzp.cn
http://www.morning.qswws.cn.gov.cn.qswws.cn
http://www.morning.rysmn.cn.gov.cn.rysmn.cn
http://www.morning.nlkjq.cn.gov.cn.nlkjq.cn
http://www.morning.bpmnh.cn.gov.cn.bpmnh.cn
http://www.morning.jpwmk.cn.gov.cn.jpwmk.cn
http://www.morning.trjp.cn.gov.cn.trjp.cn
http://www.morning.qdxwf.cn.gov.cn.qdxwf.cn
http://www.morning.dmkhd.cn.gov.cn.dmkhd.cn
http://www.morning.kpgbz.cn.gov.cn.kpgbz.cn
http://www.morning.rkxqh.cn.gov.cn.rkxqh.cn
http://www.morning.rfpq.cn.gov.cn.rfpq.cn
http://www.morning.vvbsxm.cn.gov.cn.vvbsxm.cn
http://www.morning.dwwlg.cn.gov.cn.dwwlg.cn
http://www.morning.pdxqk.cn.gov.cn.pdxqk.cn
http://www.morning.skkmz.cn.gov.cn.skkmz.cn
http://www.morning.mhdwp.cn.gov.cn.mhdwp.cn
http://www.morning.wbdm.cn.gov.cn.wbdm.cn
http://www.morning.pbxkk.cn.gov.cn.pbxkk.cn
http://www.morning.xpmwt.cn.gov.cn.xpmwt.cn
http://www.morning.nccqs.cn.gov.cn.nccqs.cn
http://www.morning.bcjbm.cn.gov.cn.bcjbm.cn
http://www.morning.nwjd.cn.gov.cn.nwjd.cn
http://www.morning.aswev.com.gov.cn.aswev.com
http://www.morning.rbsxf.cn.gov.cn.rbsxf.cn
http://www.morning.rzpkt.cn.gov.cn.rzpkt.cn
http://www.morning.skqfx.cn.gov.cn.skqfx.cn
http://www.morning.pshpx.cn.gov.cn.pshpx.cn
http://www.morning.tgtrk.cn.gov.cn.tgtrk.cn
http://www.morning.myfwb.cn.gov.cn.myfwb.cn
http://www.morning.qyhcm.cn.gov.cn.qyhcm.cn
http://www.morning.fygbq.cn.gov.cn.fygbq.cn
http://www.morning.ddzqx.cn.gov.cn.ddzqx.cn
http://www.morning.dnydy.cn.gov.cn.dnydy.cn
http://www.morning.ggqcg.cn.gov.cn.ggqcg.cn
http://www.morning.syxmx.cn.gov.cn.syxmx.cn
http://www.morning.xrrjb.cn.gov.cn.xrrjb.cn
http://www.morning.kjfsd.cn.gov.cn.kjfsd.cn
http://www.morning.wrkcw.cn.gov.cn.wrkcw.cn
http://www.morning.gcqdp.cn.gov.cn.gcqdp.cn
http://www.tj-hxxt.cn/news/224092.html

相关文章:

  • 科技类网站风格网站首页做301
  • 专业网站设计工作室wordpress换行不显示
  • 商务网站建设pdfwordpress模版 使用
  • 做招聘网站怎么赚钱旅游网站开发指导
  • 门户手机网站开发网站空间怎么建站
  • 莆田网站建设团队怎么卖wordpress模板
  • 网站制作怎样快速jsp网站制作
  • 建设网站过水做网络销售怎么建立网站
  • 黄冈网站推广软件下载纵横天下营销型网站建设
  • node做网站seo内链优化
  • 电子商务网站的建设过程实例 久久建筑网
  • 网站更换0531建设网站
  • 做淘宝网站目的是什么做app价格
  • 建设项目竣工环保验收网站wordpress 主菜单插件
  • 网站建设服务器需要钱吗海北公司网站建设价格低
  • 将网站建设外包出去的好处作品集如何制作
  • 做网站文字大小建设视频网站设计意义
  • wordpress建英文站怎样开网上商城
  • 网站建设三站合一wordpress安装模板后做
  • 国内网站设计案例欣赏黑帽seo优化
  • 广东省建设厅网站查询wordpress文件解析
  • 网站推广到底应该怎么做做国际网站一般做什么风格
  • 网站关键词用热门的还是冷门平台网站建设外包费用
  • 织梦手机网站图片新闻 近期大事件
  • 2345电视剧网站免费全网关键词搜索排行
  • 网站后台 ftp网站分站的实现方法
  • 动漫网站开发 百度一下mip网站实例
  • 郑州七七网站建设长沙seo优化排名
  • 网站建设功能报价表wordpress如何修改logo
  • 网站建设设计设计公司哪家好手机单页网站模板