whycxzp
2022-03-14 92306778c176a9ac956f0b3be2354a44eaf7f8b2
src/main/java/com/whyc/util/ActionUtil.java
@@ -534,4 +534,36 @@
      }
      return sb.toString();
   }
   /**
    * 使用timestamp+盐方式,进行签名验证
    * 当前时间戳为13位数
    */
   public static boolean checkSignMD5(String time,String randomStr,String sign){
      String usefulNum = randomStr;
      //加盐方式,根据末尾的值进行不同的加密规则
      char lastChar = time.charAt(12);
      int lastNum = Integer.parseInt(String.valueOf(lastChar));
      switch (lastNum){
         //在第一位加字符串 rd@c3doed
         case 0: usefulNum += time.replace(String.valueOf(lastChar),"rd@c3dozero");break;
         case 1: usefulNum += time.replace(String.valueOf(lastChar),"rd@c3doenoe");break;
         case 2: usefulNum += time.replace(String.valueOf(lastChar),"rd@c3doktwo");break;
         case 3: usefulNum += time.replace(String.valueOf(lastChar),"rd@c3dolthree");break;
         case 4: usefulNum += time.replace(String.valueOf(lastChar),"rd@c3doexfour");break;
         case 5: usefulNum += time.replace(String.valueOf(lastChar),"rd@c3doedefive");break;
         case 6: usefulNum += time.replace(String.valueOf(lastChar),"rd@c3doedhsix");break;
         case 7: usefulNum += time.replace(String.valueOf(lastChar),"rd@c3doedtseven");break;
         case 8: usefulNum += time.replace(String.valueOf(lastChar),"rd@c3doedbeight");break;
         case 9: usefulNum += time.replace(String.valueOf(lastChar),"rd@c3doedrnine");break;
      }
      //MD5加密后
      String signNow = (String) EncryptionMD5(usefulNum);
      StringBuilder sb = new StringBuilder();
      for (int i = 0; i < 10; i++) {
         sb.append(signNow.charAt(i*2));
      }
      String signResult = sb.append(signNow).toString();
      return sign.equals(signResult);
   }
}