打开首页 https://www.kuke99.com/
找到一个加密接口: https://www.kuke99.com/prod-api/kukemarketing/pc/pageMaster/getAssemblyForWx
请求方式为post,请求头内容:
POST /prod-api/kukemarketing/pc/pageMaster/getAssemblyForWx HTTP/1.1
Host: www.kuke99.com
User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:137.0) Gecko/20100101 Firefox/137.0
Accept: application/json
Accept-Language: zh-CN,zh;q=0.8,zh-TW;q=0.7,zh-HK;q=0.5,en-US;q=0.3,en;q=0.2
Accept-Encoding: gzip, deflate, br, zstd
Referer: https://www.kuke99.com/
content-type: application/json
kk-from: web
kk-platform: 1
kk-request-id: 1744082352627420244d3985a4f21bf18e18108b81106
kk-terminal-type: pc
kk-version: 3.4.0
Content-Length: 152
Origin: https://www.kuke99.com
Connection: keep-alive
Cookie: ssxmod_itna=YqIx2iitWxBDz=DUDGrtzK0=D8BnKe=DknKKuzDfxGNqc5DZDiqAPGhDCSEILhSr4bCnnbPP4OWr7eLKwB0bpIejGbGa==Ocm40aDbqGkQRGxiigDCeDIDWeDiDG4GmeqGtDpxG=DjDytZ9TtDm4GWGqDmDGYBWqDgDYQDGkK0D7QDIqUNADUPxM2lUlt4FnDqGqDMReGXWEaNvna7E00VDB65hdT0DA=09dR5Or=C2PGu9dNDPMboIdi/QQ+AKGw54TQDYqHDUkuCDG3BQ043D75BnK3cxDNAzDAFi0GKbBqI0FqPKYhb/yqYD5i0WKGKS4iD+xm5DGbhOiDD==; ssxmod_itna2=YqIx2iitWxBDz=DUDGrtzK0=D8BnKe=DknKKuD8dp4GXWG2CxFqiQ3x=; Hm_lvt_f86355e338e36ac89f23044f342c637b=1743653847; UM_distinctid=195f9de4098c2c-02f9f2d912e957-f535726-144000-195f9de4099c1c; CNZZDATA1280479695=1674727507-1743653847-%7C1744082352; kkc-learn=%7B%22state%22%3A%7B%7D%7D; Hm_lpvt_f86355e338e36ac89f23044f342c637b=1744082352; HMACCOUNT=FAE95BF56AF1C2F5; fingerprintId=a4ca345c608c67020996d71015dcacac; acw_sc__v2=67f491de424bdf32f82f9da3a37dab26d95d7f42; acw_tc=42decbd5-dd20-4049-8774-15d2b78f285998c9aeb78443b70d99ae3701a4679ea4
Sec-Fetch-Dest: empty
Sec-Fetch-Mode: cors
Sec-Fetch-Site: same-origin
Priority: u=4
Pragma: no-cache
请求参数内容:
{
"appId":"c9379359685",
"sign":"af56395ae10b96327ebb3774e1e169ad",
"time":1744082352,
"bizContent":{
"pageMasterId":"968065585896714242",
"assemblyType":24
}
}
请求头里cookie和kk-request-id, 请求参数中的sign 应该需要逆向。
先来解决相对复杂点的sign。
全局搜索 sign:,找到sign:c 打断点得到此时的sign为d1761548b0f5a3c3f1761cf83eb2a399,先记录下来用于后面对比。

新建一个js文件,往上看到 c = E3(l).toLowerCase();复制过来。
鼠标移到l上得到他的值,直接定义l=”assemblyType=24&pageMasterId=968065585896714242&appId=c9379359685&appKey=awo6ureum8bn&time=1744079465″
其中time的值是动态的时间戳,这里先用此时的值,以方便后面对比sign生成是否正确。
跳转到E3的代码位置,发现他是function C3(e) {}里的T2.exports;
把function C3 和 var S3 = T2.exports; const E3 = Pi(S3);复制过来;
找到T2的代码复制过来:
找到T2的定义代码,复制过来:
var T2 = {
exports: {
}
},
找到函数Pi()复制过来:
function Pi(e) {
return e &&
e.__esModule &&
Object.prototype.hasOwnProperty.call(e, 'default') ? e.default : e
}
开始测试运行,提示x3未定义。
跟踪到var x3 = I2.exports 把I2和相关代码复制过来 var x3最好放到C3方法上面声明;
再次运行提示Mm未定义。跟踪找到Mm=yf 将yf相关代码复制过来;
继续运行 提示w3未定义 找到代码补过来再次运行,此时没有报错了;
console.log(sign)打印下sign 得到结果为d1761548b0f5a3c3f1761cf83eb2a399 值和之前断点得到的sign一致;
接下来将变量l值里的时间戳改成动态获取。l中的assemblyType=24&pageMasterId=968065585896714242是json格式的bizContent字段转为url参数形式,扣原站js里的代码涉及函数比较多直接写一个函数实现这个转换:
//将bizContent字段由json格式转为url字符串参数形式
const querystring = require('node:querystring');
const queryStr = querystring.stringify(bizContent);
let l=queryStr+"&appId="+appId+"&appKey="+appKey+"&time="+timestamp
let sign=E3(l).toLowerCase();
console.log(sign)
sign的逆向这就完成了。
完整代码如下:
let timestamp=Math.floor(Date.now() / 1000)
let token="vYQ7DJugkbUZjnw2zi1u3LfUBHJt0QoyO/OJ3uq/Vjk="
let appId="c9379359685"
let appKey="awo6ureum8bn"
let bizContent={"assemblyType": 24, "pageMasterId": "968065585896714242"}
// let sign='d1761548b0f5a3c3f1761cf83eb2a399'
var T2 = {
exports: {
}
},I2 = {
exports: {
}
};
(
function () {
var e = 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/',
t = {
rotl: function (n, o) {
return n << o | n >>> 32 - o
},
rotr: function (n, o) {
return n << 32 - o | n >>> o
},
endian: function (n) {
if (n.constructor == Number) return t.rotl(n, 8) & 16711935 | t.rotl(n, 24) & 4278255360;
for (var o = 0; o < n.length; o++) n[o] = t.endian(n[o]);
return n
},
randomBytes: function (n) {
for (var o = []; n > 0; n--) o.push(Math.floor(Math.random() * 256));
return o
},
bytesToWords: function (n) {
for (var o = [], s = 0, i = 0; s < n.length; s++, i += 8) o[i >>> 5] |= n[s] << 24 - i % 32;
return o
},
wordsToBytes: function (n) {
for (var o = [], s = 0; s < n.length * 32; s += 8) o.push(n[s >>> 5] >>> 24 - s % 32 & 255);
return o
},
bytesToHex: function (n) {
for (var o = [], s = 0; s < n.length; s++) o.push((n[s] >>> 4).toString(16)),
o.push((n[s] & 15).toString(16));
return o.join('')
},
hexToBytes: function (n) {
for (var o = [], s = 0; s < n.length; s += 2) o.push(parseInt(n.substr(s, 2), 16));
return o
},
bytesToBase64: function (n) {
for (var o = [], s = 0; s < n.length; s += 3) for (var i = n[s] << 16 | n[s + 1] << 8 | n[s + 2], a = 0; a < 4; a++) s * 8 + a * 6 <= n.length * 8 ? o.push(e.charAt(i >>> 6 * (3 - a) & 63)) : o.push('=');
return o.join('')
},
base64ToBytes: function (n) {
n = n.replace(/[^A-Z0-9+\/]/gi, '');
for (var o = [], s = 0, i = 0; s < n.length; i = ++s % 4) i != 0 &&
o.push(
(e.indexOf(n.charAt(s - 1)) & Math.pow(2, - 2 * i + 8) - 1) << i * 2 | e.indexOf(n.charAt(s)) >>> 6 - i * 2
);
return o
}
};
I2.exports = t
}
) ();
var x3 = I2.exports
yf = {
utf8: {
stringToBytes: function (e) {
return yf.bin.stringToBytes(unescape(encodeURIComponent(e)))
},
bytesToString: function (e) {
return decodeURIComponent(escape(yf.bin.bytesToString(e)))
}
},
bin: {
stringToBytes: function (e) {
for (var t = [], n = 0; n < e.length; n++) t.push(e.charCodeAt(n) & 255);
return t
},
bytesToString: function (e) {
for (var t = [], n = 0; n < e.length; n++) t.push(String.fromCharCode(e[n]));
return t.join('')
}
}
},
Mm = yf
var w3 = function (e) {
return e != null &&
(P2(e) || C3(e) || !!e._isBuffer)
}
function C3(e) {
return typeof e.readFloatLE == 'function' &&
typeof e.slice == 'function' &&
P2(e.slice(0, 0))
}(
function () {
var e = x3,
t = Mm.utf8,
n = w3,
o = Mm.bin,
s = function (i, a) {
i.constructor == String ? a &&
a.encoding === 'binary' ? i = o.stringToBytes(i) : i = t.stringToBytes(i) : n(i) ? i = Array.prototype.slice.call(i, 0) : !Array.isArray(i) &&
i.constructor !== Uint8Array &&
(i = i.toString());
for (
var r = e.bytesToWords(i),
l = i.length * 8,
c = 1732584193,
u = - 271733879,
d = - 1732584194,
f = 271733878,
p = 0;
p < r.length;
p++
) r[p] = (r[p] << 8 | r[p] >>> 24) & 16711935 | (r[p] << 24 | r[p] >>> 8) & 4278255360;
r[l >>> 5] |= 128 << l % 32,
r[(l + 64 >>> 9 << 4) + 14] = l;
for (var h = s._ff, v = s._gg, y = s._hh, C = s._ii, p = 0; p < r.length; p += 16) {
var b = c,
m = u,
x = d,
S = f;
c = h(c, u, d, f, r[p + 0], 7, - 680876936),
f = h(f, c, u, d, r[p + 1], 12, - 389564586),
d = h(d, f, c, u, r[p + 2], 17, 606105819),
u = h(u, d, f, c, r[p + 3], 22, - 1044525330),
c = h(c, u, d, f, r[p + 4], 7, - 176418897),
f = h(f, c, u, d, r[p + 5], 12, 1200080426),
d = h(d, f, c, u, r[p + 6], 17, - 1473231341),
u = h(u, d, f, c, r[p + 7], 22, - 45705983),
c = h(c, u, d, f, r[p + 8], 7, 1770035416),
f = h(f, c, u, d, r[p + 9], 12, - 1958414417),
d = h(d, f, c, u, r[p + 10], 17, - 42063),
u = h(u, d, f, c, r[p + 11], 22, - 1990404162),
c = h(c, u, d, f, r[p + 12], 7, 1804603682),
f = h(f, c, u, d, r[p + 13], 12, - 40341101),
d = h(d, f, c, u, r[p + 14], 17, - 1502002290),
u = h(u, d, f, c, r[p + 15], 22, 1236535329),
c = v(c, u, d, f, r[p + 1], 5, - 165796510),
f = v(f, c, u, d, r[p + 6], 9, - 1069501632),
d = v(d, f, c, u, r[p + 11], 14, 643717713),
u = v(u, d, f, c, r[p + 0], 20, - 373897302),
c = v(c, u, d, f, r[p + 5], 5, - 701558691),
f = v(f, c, u, d, r[p + 10], 9, 38016083),
d = v(d, f, c, u, r[p + 15], 14, - 660478335),
u = v(u, d, f, c, r[p + 4], 20, - 405537848),
c = v(c, u, d, f, r[p + 9], 5, 568446438),
f = v(f, c, u, d, r[p + 14], 9, - 1019803690),
d = v(d, f, c, u, r[p + 3], 14, - 187363961),
u = v(u, d, f, c, r[p + 8], 20, 1163531501),
c = v(c, u, d, f, r[p + 13], 5, - 1444681467),
f = v(f, c, u, d, r[p + 2], 9, - 51403784),
d = v(d, f, c, u, r[p + 7], 14, 1735328473),
u = v(u, d, f, c, r[p + 12], 20, - 1926607734),
c = y(c, u, d, f, r[p + 5], 4, - 378558),
f = y(f, c, u, d, r[p + 8], 11, - 2022574463),
d = y(d, f, c, u, r[p + 11], 16, 1839030562),
u = y(u, d, f, c, r[p + 14], 23, - 35309556),
c = y(c, u, d, f, r[p + 1], 4, - 1530992060),
f = y(f, c, u, d, r[p + 4], 11, 1272893353),
d = y(d, f, c, u, r[p + 7], 16, - 155497632),
u = y(u, d, f, c, r[p + 10], 23, - 1094730640),
c = y(c, u, d, f, r[p + 13], 4, 681279174),
f = y(f, c, u, d, r[p + 0], 11, - 358537222),
d = y(d, f, c, u, r[p + 3], 16, - 722521979),
u = y(u, d, f, c, r[p + 6], 23, 76029189),
c = y(c, u, d, f, r[p + 9], 4, - 640364487),
f = y(f, c, u, d, r[p + 12], 11, - 421815835),
d = y(d, f, c, u, r[p + 15], 16, 530742520),
u = y(u, d, f, c, r[p + 2], 23, - 995338651),
c = C(c, u, d, f, r[p + 0], 6, - 198630844),
f = C(f, c, u, d, r[p + 7], 10, 1126891415),
d = C(d, f, c, u, r[p + 14], 15, - 1416354905),
u = C(u, d, f, c, r[p + 5], 21, - 57434055),
c = C(c, u, d, f, r[p + 12], 6, 1700485571),
f = C(f, c, u, d, r[p + 3], 10, - 1894986606),
d = C(d, f, c, u, r[p + 10], 15, - 1051523),
u = C(u, d, f, c, r[p + 1], 21, - 2054922799),
c = C(c, u, d, f, r[p + 8], 6, 1873313359),
f = C(f, c, u, d, r[p + 15], 10, - 30611744),
d = C(d, f, c, u, r[p + 6], 15, - 1560198380),
u = C(u, d, f, c, r[p + 13], 21, 1309151649),
c = C(c, u, d, f, r[p + 4], 6, - 145523070),
f = C(f, c, u, d, r[p + 11], 10, - 1120210379),
d = C(d, f, c, u, r[p + 2], 15, 718787259),
u = C(u, d, f, c, r[p + 9], 21, - 343485551),
c = c + b >>> 0,
u = u + m >>> 0,
d = d + x >>> 0,
f = f + S >>> 0
}
return e.endian([c,
u,
d,
f])
};
s._ff = function (i, a, r, l, c, u, d) {
var f = i + (a & r | ~a & l) + (c >>> 0) + d;
return (f << u | f >>> 32 - u) + a
},
s._gg = function (i, a, r, l, c, u, d) {
var f = i + (a & l | r & ~l) + (c >>> 0) + d;
return (f << u | f >>> 32 - u) + a
},
s._hh = function (i, a, r, l, c, u, d) {
var f = i + (a ^ r ^ l) + (c >>> 0) + d;
return (f << u | f >>> 32 - u) + a
},
s._ii = function (i, a, r, l, c, u, d) {
var f = i + (r ^ (a | ~l)) + (c >>> 0) + d;
return (f << u | f >>> 32 - u) + a
},
s._blocksize = 16,
s._digestsize = 16,
T2.exports = function (i, a) {
if (i == null) throw new Error('Illegal argument ' + i);
var r = e.wordsToBytes(s(i, a));
return a &&
a.asBytes ? r : a &&
a.asString ? o.bytesToString(r) : e.bytesToHex(r)
}
}
) ();
function Pi(e) {
return e &&
e.__esModule &&
Object.prototype.hasOwnProperty.call(e, 'default') ? e.default : e
}
var S3 = T2.exports;
const E3 = Pi(S3);
//将bizContent字段由json格式转为url字符串参数形式
const querystring = require('node:querystring');
const queryStr = querystring.stringify(bizContent);
// l="assemblyType=24&pageMasterId=968065585896714242&appId="+appId+"&appKey="+appKey+"&time="+timestamp
let l=queryStr+"&appId="+appId+"&appKey="+appKey+"&time="+timestamp
let sign=E3(l).toLowerCase();
console.log(sign)
接下来处理请求头里的kk-request-id。全局搜索kk-request-id。实际就只有一处:
h = {
'content-type': 'application/json',
accept: 'application/json',
'kk-version': t,
'kk-request-id': ''.concat(new Date().getTime()).concat(E2()),
'kk-platform': s
};
同时可以看出请求头所需的参数是content-type,accept等5个参数;
kk-versoin得到3.4.0;kk-platform得到1。这两个应该就是固定的值;
全局搜索3.4.0可以找到更多的配置项:
config: {
public: {
TOKEN_KEY: 'TOKEN',
BUILD_ENV: 'PROD',
lastBuildTime: 1744041773120,
baseUrlClient: '/prod-api',
version: '3.4.0',
USER_KEY: 'user',
CALLBACK_URL: 'https://icloud.kukewang.com/auth/callback/',
PAY_LOCALHOST: 'https://pay-pc.kukecloud.cn',
persistedState: {
storage: 'cookies',
debug: Y,
cookieOptions: {
}
}
},
app: {
baseURL: is,
buildAssetsDir: '/_nuxt/',
cdnURL: 'https://oss.kuke99.com/kukecloud/static/pc/'
}
}
kk-request-id需要E2()的值。找到该方法复制过来生成requestid:
var vf = [];
for (let e = 0; e <= 15; e++) vf[e] = e.toString(16);
function E2() {
let e = '';
for (let t = 1; t <= 36; t++) t === 9 ||
t === 14 ||
t === 19 ||
t === 24 ? e += '-' : t === 15 ? e += 4 : t === 20 ? e += vf[Math.random() * 4 | 8] : e += vf[Math.random() * 16 | 0];
return e.replace(/-/g, '')
}
let request_id=''.concat(new Date().getTime()).concat(E2())
console.log(request_id)
对目标接口打上xhr断点,网址包含pc/pageMaster/getAssemblyForWx时触发。

刷新触发断点,停在了1367行:

鼠标移到o上直接能看到他的请求信息,发现请求头还缺少”kk-from”: “web”和”kk-terminal-type”: “pc”;
同时发现他请求头里cookie是不需要的。那么就不用逆向coockie了。
现在开始完整请求测试:
n8n工作流中新建一个code节点,生成kk-request-id,sign和时间戳
//生成 kk-request-id
var vf = [];
for (let e = 0; e <= 15; e++) vf[e] = e.toString(16);
function E2() {
let e = '';
for (let t = 1; t <= 36; t++) t === 9 ||
t === 14 ||
t === 19 ||
t === 24 ? e += '-' : t === 15 ? e += 4 : t === 20 ? e += vf[Math.random() * 4 | 8] : e += vf[Math.random() * 16 | 0];
return e.replace(/-/g, '')
}
let request_id=''.concat(new Date().getTime()).concat(E2())
console.log(request_id)
//生成sign
let timestamp=Math.floor(Date.now() / 1000)
let token="vYQ7DJugkbUZjnw2zi1u3LfUBHJt0QoyO/OJ3uq/Vjk="
let appId="c9379359685"
let appKey="awo6ureum8bn"
let bizContent={"assemblyType": 24, "pageMasterId": "968065585896714242"}
// let sign='d1761548b0f5a3c3f1761cf83eb2a399'
var T2 = {
exports: {
}
},I2 = {
exports: {
}
};
(
function () {
var e = 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/',
t = {
rotl: function (n, o) {
return n << o | n >>> 32 - o
},
rotr: function (n, o) {
return n << 32 - o | n >>> o
},
endian: function (n) {
if (n.constructor == Number) return t.rotl(n, 8) & 16711935 | t.rotl(n, 24) & 4278255360;
for (var o = 0; o < n.length; o++) n[o] = t.endian(n[o]);
return n
},
randomBytes: function (n) {
for (var o = []; n > 0; n--) o.push(Math.floor(Math.random() * 256));
return o
},
bytesToWords: function (n) {
for (var o = [], s = 0, i = 0; s < n.length; s++, i += 8) o[i >>> 5] |= n[s] << 24 - i % 32;
return o
},
wordsToBytes: function (n) {
for (var o = [], s = 0; s < n.length * 32; s += 8) o.push(n[s >>> 5] >>> 24 - s % 32 & 255);
return o
},
bytesToHex: function (n) {
for (var o = [], s = 0; s < n.length; s++) o.push((n[s] >>> 4).toString(16)),
o.push((n[s] & 15).toString(16));
return o.join('')
},
hexToBytes: function (n) {
for (var o = [], s = 0; s < n.length; s += 2) o.push(parseInt(n.substr(s, 2), 16));
return o
},
bytesToBase64: function (n) {
for (var o = [], s = 0; s < n.length; s += 3) for (var i = n[s] << 16 | n[s + 1] << 8 | n[s + 2], a = 0; a < 4; a++) s * 8 + a * 6 <= n.length * 8 ? o.push(e.charAt(i >>> 6 * (3 - a) & 63)) : o.push('=');
return o.join('')
},
base64ToBytes: function (n) {
n = n.replace(/[^A-Z0-9+\/]/gi, '');
for (var o = [], s = 0, i = 0; s < n.length; i = ++s % 4) i != 0 &&
o.push(
(e.indexOf(n.charAt(s - 1)) & Math.pow(2, - 2 * i + 8) - 1) << i * 2 | e.indexOf(n.charAt(s)) >>> 6 - i * 2
);
return o
}
};
I2.exports = t
}
) ();
var x3 = I2.exports
yf = {
utf8: {
stringToBytes: function (e) {
return yf.bin.stringToBytes(unescape(encodeURIComponent(e)))
},
bytesToString: function (e) {
return decodeURIComponent(escape(yf.bin.bytesToString(e)))
}
},
bin: {
stringToBytes: function (e) {
for (var t = [], n = 0; n < e.length; n++) t.push(e.charCodeAt(n) & 255);
return t
},
bytesToString: function (e) {
for (var t = [], n = 0; n < e.length; n++) t.push(String.fromCharCode(e[n]));
return t.join('')
}
}
},
Mm = yf
var w3 = function (e) {
return e != null &&
(P2(e) || C3(e) || !!e._isBuffer)
}
function C3(e) {
return typeof e.readFloatLE == 'function' &&
typeof e.slice == 'function' &&
P2(e.slice(0, 0))
}(
function () {
var e = x3,
t = Mm.utf8,
n = w3,
o = Mm.bin,
s = function (i, a) {
i.constructor == String ? a &&
a.encoding === 'binary' ? i = o.stringToBytes(i) : i = t.stringToBytes(i) : n(i) ? i = Array.prototype.slice.call(i, 0) : !Array.isArray(i) &&
i.constructor !== Uint8Array &&
(i = i.toString());
for (
var r = e.bytesToWords(i),
l = i.length * 8,
c = 1732584193,
u = - 271733879,
d = - 1732584194,
f = 271733878,
p = 0;
p < r.length;
p++
) r[p] = (r[p] << 8 | r[p] >>> 24) & 16711935 | (r[p] << 24 | r[p] >>> 8) & 4278255360;
r[l >>> 5] |= 128 << l % 32,
r[(l + 64 >>> 9 << 4) + 14] = l;
for (var h = s._ff, v = s._gg, y = s._hh, C = s._ii, p = 0; p < r.length; p += 16) {
var b = c,
m = u,
x = d,
S = f;
c = h(c, u, d, f, r[p + 0], 7, - 680876936),
f = h(f, c, u, d, r[p + 1], 12, - 389564586),
d = h(d, f, c, u, r[p + 2], 17, 606105819),
u = h(u, d, f, c, r[p + 3], 22, - 1044525330),
c = h(c, u, d, f, r[p + 4], 7, - 176418897),
f = h(f, c, u, d, r[p + 5], 12, 1200080426),
d = h(d, f, c, u, r[p + 6], 17, - 1473231341),
u = h(u, d, f, c, r[p + 7], 22, - 45705983),
c = h(c, u, d, f, r[p + 8], 7, 1770035416),
f = h(f, c, u, d, r[p + 9], 12, - 1958414417),
d = h(d, f, c, u, r[p + 10], 17, - 42063),
u = h(u, d, f, c, r[p + 11], 22, - 1990404162),
c = h(c, u, d, f, r[p + 12], 7, 1804603682),
f = h(f, c, u, d, r[p + 13], 12, - 40341101),
d = h(d, f, c, u, r[p + 14], 17, - 1502002290),
u = h(u, d, f, c, r[p + 15], 22, 1236535329),
c = v(c, u, d, f, r[p + 1], 5, - 165796510),
f = v(f, c, u, d, r[p + 6], 9, - 1069501632),
d = v(d, f, c, u, r[p + 11], 14, 643717713),
u = v(u, d, f, c, r[p + 0], 20, - 373897302),
c = v(c, u, d, f, r[p + 5], 5, - 701558691),
f = v(f, c, u, d, r[p + 10], 9, 38016083),
d = v(d, f, c, u, r[p + 15], 14, - 660478335),
u = v(u, d, f, c, r[p + 4], 20, - 405537848),
c = v(c, u, d, f, r[p + 9], 5, 568446438),
f = v(f, c, u, d, r[p + 14], 9, - 1019803690),
d = v(d, f, c, u, r[p + 3], 14, - 187363961),
u = v(u, d, f, c, r[p + 8], 20, 1163531501),
c = v(c, u, d, f, r[p + 13], 5, - 1444681467),
f = v(f, c, u, d, r[p + 2], 9, - 51403784),
d = v(d, f, c, u, r[p + 7], 14, 1735328473),
u = v(u, d, f, c, r[p + 12], 20, - 1926607734),
c = y(c, u, d, f, r[p + 5], 4, - 378558),
f = y(f, c, u, d, r[p + 8], 11, - 2022574463),
d = y(d, f, c, u, r[p + 11], 16, 1839030562),
u = y(u, d, f, c, r[p + 14], 23, - 35309556),
c = y(c, u, d, f, r[p + 1], 4, - 1530992060),
f = y(f, c, u, d, r[p + 4], 11, 1272893353),
d = y(d, f, c, u, r[p + 7], 16, - 155497632),
u = y(u, d, f, c, r[p + 10], 23, - 1094730640),
c = y(c, u, d, f, r[p + 13], 4, 681279174),
f = y(f, c, u, d, r[p + 0], 11, - 358537222),
d = y(d, f, c, u, r[p + 3], 16, - 722521979),
u = y(u, d, f, c, r[p + 6], 23, 76029189),
c = y(c, u, d, f, r[p + 9], 4, - 640364487),
f = y(f, c, u, d, r[p + 12], 11, - 421815835),
d = y(d, f, c, u, r[p + 15], 16, 530742520),
u = y(u, d, f, c, r[p + 2], 23, - 995338651),
c = C(c, u, d, f, r[p + 0], 6, - 198630844),
f = C(f, c, u, d, r[p + 7], 10, 1126891415),
d = C(d, f, c, u, r[p + 14], 15, - 1416354905),
u = C(u, d, f, c, r[p + 5], 21, - 57434055),
c = C(c, u, d, f, r[p + 12], 6, 1700485571),
f = C(f, c, u, d, r[p + 3], 10, - 1894986606),
d = C(d, f, c, u, r[p + 10], 15, - 1051523),
u = C(u, d, f, c, r[p + 1], 21, - 2054922799),
c = C(c, u, d, f, r[p + 8], 6, 1873313359),
f = C(f, c, u, d, r[p + 15], 10, - 30611744),
d = C(d, f, c, u, r[p + 6], 15, - 1560198380),
u = C(u, d, f, c, r[p + 13], 21, 1309151649),
c = C(c, u, d, f, r[p + 4], 6, - 145523070),
f = C(f, c, u, d, r[p + 11], 10, - 1120210379),
d = C(d, f, c, u, r[p + 2], 15, 718787259),
u = C(u, d, f, c, r[p + 9], 21, - 343485551),
c = c + b >>> 0,
u = u + m >>> 0,
d = d + x >>> 0,
f = f + S >>> 0
}
return e.endian([c,
u,
d,
f])
};
s._ff = function (i, a, r, l, c, u, d) {
var f = i + (a & r | ~a & l) + (c >>> 0) + d;
return (f << u | f >>> 32 - u) + a
},
s._gg = function (i, a, r, l, c, u, d) {
var f = i + (a & l | r & ~l) + (c >>> 0) + d;
return (f << u | f >>> 32 - u) + a
},
s._hh = function (i, a, r, l, c, u, d) {
var f = i + (a ^ r ^ l) + (c >>> 0) + d;
return (f << u | f >>> 32 - u) + a
},
s._ii = function (i, a, r, l, c, u, d) {
var f = i + (r ^ (a | ~l)) + (c >>> 0) + d;
return (f << u | f >>> 32 - u) + a
},
s._blocksize = 16,
s._digestsize = 16,
T2.exports = function (i, a) {
if (i == null) throw new Error('Illegal argument ' + i);
var r = e.wordsToBytes(s(i, a));
return a &&
a.asBytes ? r : a &&
a.asString ? o.bytesToString(r) : e.bytesToHex(r)
}
}
) ();
function Pi(e) {
return e &&
e.__esModule &&
Object.prototype.hasOwnProperty.call(e, 'default') ? e.default : e
}
var S3 = T2.exports;
const E3 = Pi(S3);
//将bizContent字段由json格式转为url字符串参数形式
const querystring = require('node:querystring');
const queryStr = querystring.stringify(bizContent);
// l="assemblyType=24&pageMasterId=968065585896714242&appId="+appId+"&appKey="+appKey+"&time="+timestamp
let l=queryStr+"&appId="+appId+"&appKey="+appKey+"&time="+timestamp
let sign=E3(l).toLowerCase();
console.log(sign)
return {t:timestamp, sign:sign, request_id:request_id};
再新建一个http request节点,请求方式为post;
url为https://www.kuke99.com/prod-api/kukemarketing/pc/pageMaster/getAssemblyForWx;
请求headers内容:
{
"content-type": "application/json",
"accept": "application/json",
"kk-platform": "1",
"kk-from": "web",
"kk-version": "3.4.0",
"kk-request-id": "{{ $json.request_id }}",
"kk-terminal-type": "pc",
"Cookie": "{{ $json.cookie }}"
}
请求body内容:
{"appId":"c9379359685","sign":"{{ $json.sign }}","time":{{ $json.t }},"bizContent":{"pageMasterId":"968065585896714242","assemblyType":24}}
点击测试工作流,成功得到数据。
