diff --git a/src/crypto.js b/src/crypto.js index db941666e3..d9e726fd47 100644 --- a/src/crypto.js +++ b/src/crypto.js @@ -167,6 +167,13 @@ module.exports = { .once('finish', () => resolve(digest.read())); }), }, + random: { + hex: (length) => + crypto + .randomBytes(Math.ceil(length / 2)) + .toString('hex') + .slice(0, length), + }, }; try { diff --git a/src/provider/kuwo.js b/src/provider/kuwo.js index 1176606be2..b317ea807a 100644 --- a/src/provider/kuwo.js +++ b/src/provider/kuwo.js @@ -46,11 +46,11 @@ const search = (info) => { const keyword = encodeURIComponent(info.keyword.replace(' - ', ' ')); const url = `http://www.kuwo.cn/api/www/search/searchMusicBykeyWord?key=${keyword}&pn=1&rn=30`; - const token = Math.random().toString(16).slice(-11).toUpperCase(); + const token = crypto.random.hex(32).toUpperCase(); return request('GET', url, { referer: `http://www.kuwo.cn/search/list?key=${keyword}`, - csrf: token, - cookie: `kw_token=${token}`, + cross: crypto.md5.digest(token), + cookie: `Hm_token=${token}`, }) .then((response) => response.json()) .then((jsonBody) => {