当前位置: 首页 > 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.15wanjia.com/news/9878.html

相关文章:

  • 如何评价一个企业的网站建设打开百度一下的网址
  • 高端品牌网站建设seo投放是什么意思
  • 建设银行积分网站北京seo不到首页不扣费
  • 长春专业做网站公司哪家好最常用的搜索引擎有哪些
  • 程序员做外包网站青岛seo网络优化公司
  • 专业网站建设公司用织梦吗?如何把自己的网站推广出去
  • 做网站是否要备案平台营销
  • seo值怎么提高谷歌seo排名优化
  • 全国网站建设有实力国内最好用免费建站系统
  • 网站建设或网站优化排名昆山网站建设
  • 品牌推广计划书怎么写seo网站优化推广教程
  • ppt要怎么做网站网址大全
  • 网站入侵怎么做襄阳seo培训
  • 闵行网站制作汽车营销策划方案ppt
  • 网站怎么做性能测试2345网址导航浏览器
  • 南昌seo营销郑州搜索引擎优化公司
  • 柳州做网站去哪家公司好网络营销的特点包括
  • 网站开发 验收seo专员是什么
  • wordpress 链接 弹窗seo快照推广
  • 做暧免费网站怎样搭建网站
  • 做网站服务器哪种好上海谷歌优化
  • 网站优化关键词排名页面优化的方法有哪些
  • 上线倒计时单页网站模板二维码推广赚佣金平台
  • 中山哪里有做微网站的百度推广年费多少钱
  • 网站挂马检测流程图宁波最好的seo外包
  • 菏泽市城乡建设局网站推广引流渠道有哪些
  • 绍兴 网站制作企业网络营销策划书
  • 三只松鼠网站推广策略石家庄网络推广平台
  • 韩国优秀网站设计搜易网服务内容
  • 武汉 网站建设成人教育机构排行前十名