whyczyk
2022-02-08 9d692b302a79012b538d796c5419e33015550bf5
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
import randomString from "@/assets/js/randomString";
import md5 from "js-md5";
 
function rejectReplay() {
  let t = sessionStorage.getItem("serverStamp") || new Date().getTime() + "";
  let rd = randomString(10);
  let sign = getSign(t, rd);
  return 't=' + t + "&sign=" + sign + "&rd=" + rd;
}
 
function getSign(time, randomStr) {
  let usefulNum = randomStr;
  //加盐方式,根据末尾的值进行不同的加密规则
  let lastChar = time.charAt(12);
  let lastNum = Number(lastChar);
  let reg = new RegExp(lastChar, 'g');
  switch (lastNum) {
    //在第一位加字符串 rd@c3doed
    case 0: usefulNum += time.replace(reg, "rd@c3dozero"); break;
    case 1: usefulNum += time.replace(reg, "rd@c3doenoe"); break;
    case 2: usefulNum += time.replace(reg, "rd@c3doktwo"); break;
    case 3: usefulNum += time.replace(reg, "rd@c3dolthree"); break;
    case 4: usefulNum += time.replace(reg, "rd@c3doexfour"); break;
    case 5: usefulNum += time.replace(reg, "rd@c3doedefive"); break;
    case 6: usefulNum += time.replace(reg, "rd@c3doedhsix"); break;
    case 7: usefulNum += time.replace(reg, "rd@c3doedtseven"); break;
    case 8: usefulNum += time.replace(reg, "rd@c3doedbeight"); break;
    case 9: usefulNum += time.replace(reg, "rd@c3doedrnine"); break;
  }
  //MD5加密后
  let signNow = md5(usefulNum);
  let sb = "";
  for (let i = 0; i < 10; i++) {
    sb += signNow.charAt(i * 2);
  }
  let signResult = sb + signNow;
  return signResult;
}
 
export default rejectReplay;