wangrenhuang
2022-03-02 1ffbaa7b82f99443d933b0f7d0add0b35d2db01c
PTEncryptionUti新增解密方法
2个文件已修改
1个文件已添加
118 ■■■■ 已修改文件
src/main/java/com/hx/encryption/PTConstant.java 34 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/hx/encryption/PTEncryptionUtil.java 70 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/hx/util/DateUtil.java 14 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/hx/encryption/PTConstant.java
New file
@@ -0,0 +1,34 @@
package com.hx.encryption;
/**
 *  接口解密返回结果配置
 * @author wangrenhuang
 * @Data 2020-06-09
 */
public class PTConstant {
    public static String PT_SIGN_EEMPLY = "签名为空!";
    public static String PT_TIMELS_EMPLY = "时间为空!";
    public static String PT_SIGN_ERROR = "签名错误";
    public static String PT_ORER_TIME = "接口超时";
    private boolean success;
    private String errCode;
    /*************************************************************************/
    public boolean isSuccess() {
        return success;
    }
    public void setSuccess(boolean success) {
        this.success = success;
    }
    public String getErrCode() {
        return errCode;
    }
    public void setErrCode(String errCode) {
        this.errCode = errCode;
    }
}
src/main/java/com/hx/encryption/PTEncryptionUtil.java
@@ -1,6 +1,8 @@
package com.hx.encryption;
import com.hx.util.DateUtil;
import com.hx.util.MD5Util;
import com.hx.util.StringUtils;
import java.util.Calendar;
import java.util.Date;
@@ -12,6 +14,7 @@
 */
public class PTEncryptionUtil {
    /*
     * 日期加密
     * date  要加密的日期
@@ -19,24 +22,55 @@
    public static String  encryption(Date date){
        Calendar cal=Calendar.getInstance();
        cal.setTime(date);
        int year = cal.get(Calendar.YEAR);//获取年份
        int month=cal.get(Calendar.MONTH);//获取月份
        int day=cal.get(Calendar.DATE);//获取日
        int hour=cal.get(Calendar.HOUR_OF_DAY);//小时
        int minute=cal.get(Calendar.MINUTE);//分
        int second=cal.get(Calendar.SECOND);//秒
        StringBuffer data = new StringBuffer();
        data.append(cal.get(Calendar.DATE));
        data.append(cal.get(Calendar.MONTH));
        data.append(cal.get(Calendar.YEAR));
        data.append(cal.get(Calendar.SECOND));
        data.append(cal.get(Calendar.MINUTE));
        data.append(cal.get(Calendar.HOUR_OF_DAY));
        String yearStr = com.hx.mp.util.MD5Util.MD5Encode(year+"","");
        String monthStr = com.hx.mp.util.MD5Util.MD5Encode(month+"","");
        String dayStr = com.hx.mp.util.MD5Util.MD5Encode(day+"","");
        String hourStr = com.hx.mp.util.MD5Util.MD5Encode(hour+"","");
        String minuteStr = com.hx.mp.util.MD5Util.MD5Encode(minute+"","");
        String secondStr = com.hx.mp.util.MD5Util.MD5Encode(second+"","");
        StringBuffer result = new StringBuffer();
        result.append(yearStr).append("-").append(monthStr).append("-").append(dayStr).append("-")
                .append(hourStr).append("-").append(minuteStr).append("-").append(secondStr);
        return result.toString();
        return com.hx.mp.util.MD5Util.MD5Encode(data.toString(),"");
    }
    /**
     *
     * @param data 签名
     * @param date 时间
     * @param time 有效时间 秒
     * @return
     */
    public static PTConstant decode(String data,Date date,Integer time){
        PTConstant ptConstant = new PTConstant();
        ptConstant.setSuccess(true);
        if (StringUtils.isEmpty(data)){
            ptConstant.setSuccess(false);
            ptConstant.setErrCode(PTConstant.PT_SIGN_EEMPLY);
            return ptConstant;
        }
        if (null == date){
            ptConstant.setSuccess(false);
            ptConstant.setErrCode(PTConstant.PT_TIMELS_EMPLY);
            return ptConstant;
        }
        if(!encryption(date).equals(data)){
            ptConstant.setSuccess(false);
            ptConstant.setErrCode(PTConstant.PT_SIGN_ERROR);
            return ptConstant;
        }
        if(time == null){
            ptConstant.setSuccess(true);
            return ptConstant;
        }
        //有效时间判断
        if (DateUtil.calLastedTime(date) > time){
            ptConstant.setSuccess(false);
            ptConstant.setErrCode(PTConstant.PT_ORER_TIME);
            return ptConstant;
        }
        return ptConstant;
    }
}
src/main/java/com/hx/util/DateUtil.java
@@ -202,6 +202,20 @@
        return Format_14.format(date);
    }
    /**
     * 当前时间之前的时间与当前时间相差多少秒
     * @param startDate 当前时间之前的时间
     * @return
     */
    public static int calLastedTime(Date startDate) {
        long nowDate = new Date().getTime();
        long startDateTime = startDate.getTime();
        int diffSeconds = (int) ((nowDate - startDateTime) / 1000);
        return diffSeconds;
    }
    /**
     * 转换成yyyyMMddHHmmssSSS格式的日期字符串
     *