mirror of
https://github.com/shufflewzc/faker3.git
synced 2026-04-04 00:44:07 +08:00
sync
This commit is contained in:
51
utils/V3.ts
Normal file
51
utils/V3.ts
Normal file
@@ -0,0 +1,51 @@
|
||||
import axios from "axios";
|
||||
import {format} from "date-fns";
|
||||
|
||||
const CryptoJS = require('crypto-js')
|
||||
|
||||
let fp: string = '', tk: string = '', genKey: any = null
|
||||
|
||||
async function requestAlgo(appId: string, USER_AGENT: string = 'jdpingou;') {
|
||||
function generateFp() {
|
||||
let e = "0123456789";
|
||||
let a = 13;
|
||||
let i = '';
|
||||
for (; a--;)
|
||||
i += e[Math.random() * e.length | 0];
|
||||
return (i + Date.now()).slice(0, 16)
|
||||
}
|
||||
|
||||
fp = generateFp()
|
||||
let {data} = await axios.post(`https://cactus.jd.com/request_algo?g_ty=ajax`, `{"version":"3.0","fp":"${fp}","appId":"${appId}","timestamp":${Date.now()},"platform":"web","expandParams":""}`, {
|
||||
headers: {
|
||||
'Accept': 'application/json',
|
||||
'Content-Type': 'application/json',
|
||||
"Accept-Encoding": "gzip, deflate, br",
|
||||
"Accept-Language": "zh-CN,zh;q=0.9,en;q=0.8",
|
||||
'host': 'cactus.jd.com',
|
||||
'Referer': 'https://cactus.jd.com',
|
||||
'User-Agent': USER_AGENT
|
||||
}
|
||||
})
|
||||
tk = data.data.result.tk;
|
||||
genKey = new Function(`return ${data.data.result.algo}`)();
|
||||
return {fp, tk, genKey}
|
||||
}
|
||||
|
||||
function geth5st(t: { key: string, value: string } [], appId: string) {
|
||||
let a = ''
|
||||
t.forEach(({key, value}) => {
|
||||
a += `${key}:${value}&`
|
||||
})
|
||||
a = a.slice(0, -1)
|
||||
let time = Date.now()
|
||||
let timestamp = format(time, "yyyyMMddHHmmssSSS");
|
||||
let hash1 = genKey(tk, fp.toString(), timestamp.toString(), appId.toString(), CryptoJS).toString(CryptoJS.enc.Hex);
|
||||
const hash2 = CryptoJS.HmacSHA256(a, hash1).toString();
|
||||
return encodeURIComponent(["".concat(timestamp.toString()), "".concat(fp.toString()), "".concat(appId.toString()), "".concat(tk), "".concat(hash2), "3.0", "".concat(time.toString())].join(";"))
|
||||
}
|
||||
|
||||
export {
|
||||
requestAlgo,
|
||||
geth5st,
|
||||
}
|
||||
Reference in New Issue
Block a user