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

购物分享网站流量排名做义工旅行有哪些网站

购物分享网站流量排名,做义工旅行有哪些网站,手机网站制作费,北京网站维护一般价格多少任务#xff1a; 接到一个任务#xff0c;调用对方的接口#xff0c;内容和密码#xff0c;需要使用md5进行加密#xff0c;再发送请求。 参数说明#xff1a; 参数名称 说明 备注 timespan 时间戳 格式为yyyyMMddHHmmss pwd 密码 此处用原始密码时间戳做MD5加…任务 接到一个任务调用对方的接口内容和密码需要使用md5进行加密再发送请求。 参数说明 参数名称 说明 备注 timespan 时间戳 格式为yyyyMMddHHmmss pwd 密码 此处用原始密码时间戳做MD5加密32位大写格式 msgfmt 编码类型 选填如果不填默认为GBK可以选填GBK或者UTF8/UTF-8 content 内容 做base64编码操作,编码方式使用msgfmt中的方式如果msgfmt有值的话 处理 bast64编码处理 md5 import org.apache.commons.codec.digest.DigestUtils;public class Md5Utils {/*** param text 明文* param key 密钥* return 密文*/public static String md5(String text, String key) throws Exception {// 加密后的字符串String md5str DigestUtils.md5Hex(text key);System.out.println(MD5加密后的字符串为: md5str);return md5str;}/*** 直接加密* param text 明文* return* throws Exception*/public static String md5(String text) throws Exception {// 加密后的字符串String md5str DigestUtils.md5Hex(text);System.out.println(MD5加密后的字符串为: md5str);return md5str;}/*** 直接加密后变成大写* param text 明文* return* throws Exception*/public static String md5Upper(String text) throws Exception {// 加密后的字符串String md5StrUp DigestUtils.md5Hex(text).toUpperCase();System.out.println(MD5加密后大写的字符串为: md5StrUp);return md5StrUp;}public static void main(String args[]) throws Exception {String currentTimeSuffix DatesUtils.getCurrentTimeSuffix();String pwd 042556;md5(pwd, currentTimeSuffix);String pwdStr 04255620230525112132;String pwdMdStr md5Upper(pwdStr);System.out.println(pwdMdStr);} }时间处理 DatesUtils import org.apache.commons.lang3.StringUtils; import org.apache.commons.lang3.time.DateFormatUtils; import org.apache.commons.lang3.time.DateUtils; import java.text.ParseException; import java.util.Calendar; import java.util.Date; import java.util.Locale; import java.util.TimeZone; public class DatesUtils {private static String datePattern yyyy-MM-dd;private static String dateHourPattern yyyy-MM-dd HH;private static String dateTimePattern yyyy-MM-dd HH:mm:ss;private static String dateTimePatternSSSXXX yyyy-MM-ddTHH:mm:ss.SSSXXX;private static String dateTimeSuffixPattern yyyyMMddHHmmss;private static String zeroTime 00:00:00;private static String endTime 23:59:59;public static String format(Date date, String pattern) {if (date null)return ;return DateFormatUtils.format(date, pattern);}public static String format(Date date, String pattern, TimeZone timeZone) {if (date null)return ;return DateFormatUtils.format(date, pattern, timeZone);}public static String formatDate(Date date) {if (date null)return ;return DateFormatUtils.format(date, datePattern);}public static String formatDate(Date date, TimeZone timeZone) {if (date null)return ;return DateFormatUtils.format(date, datePattern, timeZone);}public static String formatDateTime(Date date) {if (date null)return ;return DateFormatUtils.format(date, dateTimePattern);}public static String formatDateTime(Date date, TimeZone timeZone) {if (date null)return ;return DateFormatUtils.format(date, dateTimePattern, timeZone);}public static Date parseDate(String str) {if (StringUtils.isBlank(str))return null;try {return DateUtils.parseDate(str, datePattern);} catch (ParseException e) {e.printStackTrace();}return null;}public static Date parseDateTime(String str) {if (StringUtils.isBlank(str))return null;try {return DateUtils.parseDate(str, dateTimePattern);} catch (ParseException e) {e.printStackTrace();}return null;}public static Date parseDateTime(String str, String dateTimePattern) {if (str null)return null;try {return DateUtils.parseDate(str, Locale.CHINESE, dateTimePattern);} catch (ParseException e) {e.printStackTrace();}return null;}public static Date formatDateTimeZero(Date date) {String formatDate formatDate(date);return parseDateTime(formatDate zeroTime);}public static Date formatDateTimeEnd(Date date) {String formatDate formatDate(date);return parseDateTime(formatDate endTime);}public static Date getCurDateTime() {Date date new Date();String curDate DateFormatUtils.format(date, dateTimePatternSSSXXX);return DatesUtils.parseDateTime(curDate, dateTimePatternSSSXXX);}public static Date getFirstOfHour(Date date) {String formatDate format(date, dateHourPattern);return parseDateTime(formatDate :00:00);}public static Date getLastOfHour(Date date) {String formatDate format(date, dateHourPattern);return parseDateTime(formatDate :59:59);}public static Date getFirstOfDay(Date date) {String formatDate format(date, datePattern);return parseDateTime(formatDate zeroTime);}public static Date getLastOfDay(Date date) {String formatDate format(date, datePattern);return parseDateTime(formatDate endTime);}/*** 获取指定日期所在月的第一天* param date 日期* return 所在月的第一天*/public static Date getFirstOfMonth(Date date) {//获取当前月第一天Calendar calendar Calendar.getInstance();calendar.setTime(date);calendar.add(Calendar.MONTH, 0);calendar.set(Calendar.DAY_OF_MONTH, 1);//设置为1号,当前日期既为本月第一天return formatDateTimeZero(calendar.getTime());}/*** 获取指定日期所在月的第最后一天* param date 日期* return 最后一天*/public static Date getLastOfMonth(Date date) {//获取当前月最后一天Calendar calendar Calendar.getInstance();calendar.setTime(date);calendar.set(Calendar.DAY_OF_MONTH, calendar.getActualMaximum(Calendar.DAY_OF_MONTH));return formatDateTimeEnd(calendar.getTime());}/*** 获取当年的第一天*/public static Date getCurrentFirstOfYear() {Calendar currCal Calendar.getInstance();int currentYear currCal.get(Calendar.YEAR);return getFirstOfYear(currentYear);}/*** 获取当年的最后一天*/public static Date getCurrentLastOfYear() {Calendar currCal Calendar.getInstance();int currentYear currCal.get(Calendar.YEAR);return getLastOfYear(currentYear);}/*** 获取某年第一天日期* param year 年份* return Date*/public static Date getFirstOfYear(int year) {Calendar calendar Calendar.getInstance();calendar.clear();calendar.set(Calendar.YEAR, year);return calendar.getTime();}/*** 获取某年第一天日期* param date 日期* return Date*/public static Date getFirstOfYear(Date date) {int year Integer.parseInt(String.format(%tY, date));return formatDateTimeZero(getFirstOfYear(year));}/*** 获取某年最后一天日期* param year 年份* return Date*/public static Date getLastOfYear(int year) {Calendar calendar Calendar.getInstance();calendar.clear();calendar.set(Calendar.YEAR, year);calendar.roll(Calendar.DAY_OF_YEAR, -1);return calendar.getTime();}/*** 获取某年最后一天日期* param date 日期* return Date*/public static Date getLastOfYear(Date date) {int year Integer.parseInt(String.format(%tY, date));return formatDateTimeEnd(getLastOfYear(year));}/*** 计算两个日期之间的时间差到秒* param start 开始日期* param end 结束日期* return Long*/public static Long getDiffDatesToSec(Date start, Date end) {long startTime start.getTime();long endTime end.getTime();return (endTime - startTime) / 1000;}public static Date addDay(Date start, Integer day) {Calendar calendar Calendar.getInstance();calendar.setTime(start);calendar.add(Calendar.DATE, day);return calendar.getTime();}public static Date addMonth(Date start, Integer month) {Calendar calendar Calendar.getInstance();calendar.setTime(start);calendar.add(Calendar.MONTH, month);return calendar.getTime();}public static Long getRemainMilOneDay(Date date) {Calendar calendar Calendar.getInstance();calendar.setTime(date);calendar.add(Calendar.DAY_OF_MONTH, 1);calendar.set(Calendar.HOUR_OF_DAY, 0);calendar.set(Calendar.MINUTE, 0);calendar.set(Calendar.SECOND, 0);calendar.set(Calendar.MILLISECOND, 0);Long seconds (calendar.getTime().getTime() - date.getTime());return seconds;}public static Long getDiffDays(Date start, Date end) {Long day (parseDate(formatDate(end)).getTime() - parseDate(formatDate(start)).getTime())/ (1000 * 60 * 60 * 24);return day;}public static String getCurrentTimeSuffix() {Date now new Date();return format(now, dateTimeSuffixPattern);}public static void testDifSec() {System.out.println(before year);Date beffore parseDateTime(2012-10-10 12:00:00);Date after parseDateTime(2012-10-10 12:00:50);Long diffDatesToSec getDiffDatesToSec(beffore, after);System.out.println(diffDatesToSec);}public static void main(String args[]) {String format getCurrentTimeSuffix();System.out.println(format);} } 请求内容处理 public void sendNoticeConent(JSONObject userInfo, String content){ String pwd MapUtils.getString(userInfo, pwd);String timespan DateUtils.getCurrentTimeSuffix();MultiValueMapString, String params new LinkedMultiValueMap();params.put(pwd, Collections.singletonList(Md5Utils.md5(pwd, timespan)));params.put(timespan, Collections.singletonList(timespan));params.put(content, Collections.singletonList(Base64Utils.encode(content))); params.put(msgfmt, Collections.singletonList(UTF-8)); // 跟encode保持一致// 发送请求} 总结 MD5Message Digest Algorithm 5是一种常用的哈希算法用于将任意长度的数据转换为固定长度的哈希值。它具有以下特色特点 1、不可逆性MD5算法是一种单向哈希函数即无法通过哈希值反推出原始数据。这意味着即使知道哈希值也无法直接得到原始数据的内容。因此MD5被广泛应用于密码存储等场景增加了数据的安全性。 2、高速性相对于其他哈希算法如SHA-1或SHA-256MD5算法具有较高的计算速度。这使得MD5在处理大量数据时能够提供较快的计算效率适用于需要频繁计算哈希值的场景。 3、固定长度输出MD5算法的输出固定为128位的哈希值无论原始数据的长度如何输出都是固定长度的。这为比较和存储哈希值提供了方便同时也为验证数据完整性提供了基础。 4、广泛应用由于MD5算法的特点它被广泛应用于数据校验、密码存储、数字签名等领域。例如在网络传输中可以使用MD5校验和来验证文件的完整性在用户登录系统时可以使用MD5加密存储密码增加密码的安全性。 5、容易实现MD5算法的实现相对简单算法流程清晰明了。这使得开发人员能够轻松地将MD5算法集成到自己的应用程序中提供数据的哈希计算和校验功能。 需要注意的是由于MD5算法存在一些安全性问题如碰撞攻击和彩虹表破解等它已经不再被推荐作为密码存储的安全选择。在安全敏感的场景中建议使用更强大的哈希算法如SHA-256。
http://www.hkea.cn/news/14314426/

相关文章:

  • 020网站管理系统模板花钱想贷款结果成了做网站
  • scala网站开发动漫设计和动漫制作技术的区别
  • 网站排名与什么有关系网站备案怎么弄
  • 怎么做网站优深圳网站工作室
  • 网站做业务赚钱如何用手机制作app课件
  • 民治做网站哪家便宜驻马店市做网站
  • 西充县规划建设局网站惠州网站建设培训
  • 哪些平台制作网站怎样凡科建设网站
  • wordpress无法修改文章广告优化师
  • 网站做导航设计的作用是什么五种常见的软件架构
  • 重庆网站建设公司 菠拿拿网页界面设计ppt
  • 广州建工集团有限公司官网生产企业网站如何做seo
  • 大连h5网站开发做中文网站的公司
  • 网站服务内容有限责任公司注册要求
  • 网站建设服务公没有域名的时候建网站
  • 哪个网站做的w7系统好做海报图片去哪个网站找 知乎
  • 长春 行业网站wordpress 主题 google字体
  • 网站建设方案平台架构中文wordpress企业主题
  • 奥林匹克做校服的网站网站域名格式
  • 网站建设小知识移动网站开发百科
  • 新桥企业网站建设如何评价网站是否做的好
  • 网站开发中安全性苏州网站定制公司
  • 单页面网站制作视频个人主页网页设计素材
  • 交流网站有哪些成都设计咨询集团官网
  • 人才网站建设百度网盟 网站定向投放
  • 专业制作网站 地摊做网站什么价位
  • 网站建设综合训练深圳网站制作必荐祥奔科技
  • 怎样让网站显示网站建设中东莞宽带哪个好
  • php购物网站开发背景江浦做网站
  • python做网站 不适合重庆蒲公英网站建设公司怎么样