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

深圳外贸网站定制加快实施创新驱动发展战略

深圳外贸网站定制,加快实施创新驱动发展战略,威海吧,网站建设系统公司地址通过时间获取验证码 1.需求2.代码实现2.1 依赖2.2 时间参数处理方法2.3 截取验证码方法2.4 验证方法 3.总结 1.需求 要求是很简单的,每个验证码的有效时间是2小时,这个并不是收到验证码开始计时的,而是每个两小时的时间段使用的是相同的验证…

通过时间获取验证码

  • 1.需求
  • 2.代码实现
    • 2.1 依赖
    • 2.2 时间参数处理方法
    • 2.3 截取验证码方法
    • 2.4 验证方法
  • 3.总结

1.需求

要求是很简单的,每个验证码的有效时间是2小时,这个并不是收到验证码开始计时的,而是每个两小时的时间段使用的是相同的验证码。

2.代码实现

2.1 依赖

<dependency><groupId>gov.nist.math</groupId><artifactId>jama</artifactId><version>1.0.3</version>
</dependency><dependency><groupId>commons-codec</groupId><artifactId>commons-codec</artifactId><version>1.6</version>
</dependency>

2.2 时间参数处理方法

2个小时处理为相同的值

@Slf4j
public class VerificationCodeUtil {/*** 时间字符串** @param dateStr yyyy-MM-dd HH:mm:ss*/public static String getCode(String dateStr) {int dataStrLength = 13;try {if (dateStr.length() >= dataStrLength) {String yearMonthDay = dateStr.substring(0, 10);int hour = Integer.parseInt(dateStr.substring(11, 13));int twoHour = 2;if (hour % twoHour != 0) {hour--;}String md5Str = DigestUtils.md5Hex("vc#" + yearMonthDay + hour);return getCodeByMd5(md5Str);} else {log.error("dateStr [{}] not match format [yyyy-MM-dd HH:mm:ss]!", dateStr);}} catch (Exception e) {e.printStackTrace();log.error("dateStr [{}] not match format [yyyy-MM-dd HH:mm:ss]!", dateStr);}return dateStr;}
}

2.3 截取验证码方法

@Slf4j
public class VerificationCodeUtil {// 对指定字符串生成验证码private static String getCodeByMd5(String md5Str) {try {byte[] md5 = md5Str.getBytes();double[][] preMatrix = new double[4][8];for (int j = 0; j < 4; j++) {for (int k = 0; k < 8; k++) {preMatrix[j][k] = md5[j * 8 + k];}}Matrix matrix = new Matrix(preMatrix);Matrix matrix1 = matrix.getMatrix(1, 2, 2, 5);Matrix matrix2 = matrix.transpose();Matrix matrix21 = matrix2.getMatrix(0, 3, 0, 3);Matrix matrix22 = matrix2.getMatrix(4, 7, 0, 3);Matrix matrix3 = matrix21.plus(matrix22);Matrix result = matrix1.times(matrix3);double[][] re = result.getArray();StringBuilder str = new StringBuilder();for (double[] doubles : re) {for (double aDouble : doubles) {int a = (int) aDouble % 16;str.append(Integer.toHexString(a));}}return str.toString().toUpperCase();} catch (Exception e) {e.printStackTrace();return null;}}
}

2.4 验证方法

@Slf4j
public class VerificationCodeUtil {public static void main(String[] args) {DateFormat df = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");DateTime parse = DateUtil.parse("2023-11-09 23:59:59", "yyyy-MM-dd HH:mm:ss");String format = df.format(parse);System.out.println(getCode(format));// 00:00 3A756DFC// 00:59 3A756DFC// 01:59 3A756DFC// 01:59 3A756DFC// 02:00 9E937D4B// 02:59 9E937D4B// 03:00 9E937D4B// 22:00 D014DD79// 23:59 D014DD79        }
}

3.总结

很简单的算法分享。优点:

  • 不需要将生成的验证码缓存。
  • 时间入参,能够重复获取相同的值。
http://www.mnyf.cn/news/34648.html

相关文章:

  • 上海网站建设品牌百度官方下载
  • 广东网站建设人员搜索引擎优化的目标
  • 互联网门户网站有哪些市场营销策略有哪些
  • 让网站建设便宜到底seo学堂
  • 做网站注册35类哪几个小项东营网站建设制作
  • 官方网站手机专卖店谷歌seo推广公司
  • ui设计和网站开发百度搜索链接入口
  • 设计单网站建设seo高端培训
  • 一个好的网站内页大概做多少高端网站建设报价
  • 个人业务网站创建怎么下载百度
  • 天津国际工程建设监理公司网站网络营销策划方案论文
  • 手机能建设网站忙a站
  • 中国建设网站跨境电商平台排行榜前十名
  • 无锡哪家网站做的比较好百度有什么办法刷排名
  • 网站建设时间查询搜索引擎优化面对哪些困境
  • 西安微信网站建设公司朝阳seo排名优化培训
  • 表白网站制作软件南京百度seo排名
  • 网络营销的网站建设软文代写公司
  • 网站建设管理 优帮云怎么做宣传推广
  • 买域名送网站湘潭网站设计外包服务
  • 企业网站建设市场前景网站建设哪家公司好
  • 惠州最专业的网站建设公司手机百度seo怎么优化
  • 营销型企业网站怎么制作西安网站制作公司
  • 电商平台排名100强seo推广排名重要吗
  • 赌球网站如何做代理b站怎么推广
  • 5g网络优化工程师seo门户网站建设方案
  • 织梦绑定网站出现错误互联网推广员是做什么
  • 北京做网站建设的公司排名用今日头条导入自己网站外链
  • 织梦是怎么做网站合肥seo招聘
  • 百度只更新快照不收录网站广州发布紧急通知