feat: 重构 register_anonimous 模块 #1858

This commit is contained in:
binaryify 2023-12-25 09:46:53 +08:00
parent 6a541a33a1
commit 574364ae41

View File

@ -1,27 +1,29 @@
// 游客登录 const CryptoJS = require('crypto-js')
const crypto = require('crypto')
const ID_XOR_KEY_1 = Buffer.from('3go8&$833h0k(2)2') const ID_XOR_KEY_1 = '3go8&$833h0k(2)2'
function cloudmusic_dll_encode_id(some_id) { function cloudmusic_dll_encode_id(some_id) {
const xored = Buffer.from( let xoredString = ''
[...some_id].map( for (let i = 0; i < some_id.length; i++) {
(c, idx) => c.charCodeAt(0) ^ ID_XOR_KEY_1[idx % ID_XOR_KEY_1.length], const charCode =
), some_id.charCodeAt(i) ^ ID_XOR_KEY_1.charCodeAt(i % ID_XOR_KEY_1.length)
) xoredString += String.fromCharCode(charCode)
const digest = crypto.createHash('md5').update(xored).digest() }
return digest.toString('base64') const wordArray = CryptoJS.enc.Utf8.parse(xoredString)
const digest = CryptoJS.MD5(wordArray)
return CryptoJS.enc.Base64.stringify(digest)
} }
module.exports = async (query, request) => { module.exports = async (query, request) => {
query.cookie.os = 'iOS' query.cookie.os = 'iOS'
const deviceId = `NMUSIC` const deviceId = `NMUSIC`
const encodedId = Buffer.from( const encodedId = CryptoJS.enc.Base64.stringify(
`${deviceId} ${cloudmusic_dll_encode_id(deviceId)}`, CryptoJS.enc.Utf8.parse(
`${deviceId} ${cloudmusic_dll_encode_id(deviceId)}`,
),
) )
const username = encodedId.toString('base64')
const data = { const data = {
/* A base64 encoded string. */ username: encodedId,
username: username,
} }
let result = await request( let result = await request(
'POST', 'POST',