TravelContentCreator/static/xhs_creator_xs.js

55 lines
1.5 KiB
JavaScript
Raw Permalink Normal View History

2025-07-15 15:47:47 +08:00
const crypto = require('crypto');
let key = 'glt6h61ta7kisow7'
let iv = '4hrivgw5s342f9b2'
key = Buffer.from(key);
iv = Buffer.from(iv);
var encrypt = function (data) {
const cipher = crypto.createCipheriv('aes-128-cbc', key, iv);
let encrypted = cipher.update(data, 'utf8', 'hex');
encrypted += cipher.final('hex');
return encrypted;
};
function decrypt(encryptedText) {
const decipher = crypto.createDecipheriv('aes-128-cbc', key, iv);
let decrypted = decipher.update(encryptedText, 'hex', 'utf8');
decrypted += decipher.final('utf8');
return decrypted;
}
function get_xs(api, data, a1) {
if (data){
api = api + JSON.stringify(data);
}
const md5 = crypto.createHash('md5');
let x1 = md5.update(api).digest('hex');
let x2 = "0|0|0|1|0|0|1|0|0|0|1|0|0|0|0|1|0|0|0";
let x3 = a1;
let x4 = Date.now();
let x = `x1=${x1};x2=${x2};x3=${x3};x4=${x4};`;
let payload = encrypt(btoa(x));
let encrypt_data = {
"signSvn":"55",
"signType":"x2",
"appId":"ugc",
"signVersion":"1",
"payload":payload
}
encrypt_data = JSON.stringify(encrypt_data);
encrypt_data = 'XYW_' + btoa(encrypt_data);
return {
'X-s': encrypt_data,
'X-t': x4
}
}
function get_request_headers_params(api, data, a1){
api = 'url=' + api
let xs_xt = get_xs(api, data, a1);
let xs = xs_xt['X-s'];
let xt = xs_xt['X-t'];
return {
"xs": xs,
"xt": xt,
}
}