mirror of
https://gitlab.com/Binaryify/neteasecloudmusicapi.git
synced 2025-05-23 22:37:41 +08:00
feat: 匿名登录username算法
This commit is contained in:
parent
ac99ba5822
commit
e528f93ef7
1
app.js
1
app.js
@ -1,6 +1,5 @@
|
||||
#!/usr/bin/env node
|
||||
async function start() {
|
||||
// 如果需要手动修改anonymous_token,需要注释generateConfig调用
|
||||
require('./server').serveNcmApi({
|
||||
checkVersion: true,
|
||||
})
|
||||
|
@ -1,11 +1,34 @@
|
||||
// 游客登录
|
||||
const crypto = require('crypto')
|
||||
const ID_XOR_KEY_1 = Buffer.from('3go8&$833h0k(2)2')
|
||||
|
||||
function cloudmusic_dll_encode_id(some_id) {
|
||||
const xored = Buffer.from(
|
||||
[...some_id].map(
|
||||
(c, idx) => c.charCodeAt(0) ^ ID_XOR_KEY_1[idx % ID_XOR_KEY_1.length],
|
||||
),
|
||||
)
|
||||
const digest = crypto.createHash('md5').update(xored).digest()
|
||||
return digest.toString('base64')
|
||||
}
|
||||
function createRandomDeviceId() {
|
||||
const t = 'abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789'
|
||||
const e = 6
|
||||
let n = ''
|
||||
for (let i = 0; i < e; i++) n += t.charAt(Math.floor(Math.random() * e))
|
||||
return n
|
||||
}
|
||||
|
||||
module.exports = async (query, request) => {
|
||||
query.cookie.os = 'iOS'
|
||||
const deviceId = createRandomDeviceId()
|
||||
const encodedId = Buffer.from(
|
||||
`${deviceId} ${cloudmusic_dll_encode_id(deviceId)}`,
|
||||
)
|
||||
const username = encodedId.toString('base64')
|
||||
const data = {
|
||||
/* A base64 encoded string. */
|
||||
username:
|
||||
'MzEwMjcwYmY0Y2Y0ODcwMzU0ZDFkZmIxMmMzMGYyMTkgVlBaanMwNmtrb1BYMGxOVzVUMUJ3Zz09',
|
||||
username: username,
|
||||
}
|
||||
let result = await request(
|
||||
'POST',
|
||||
|
Loading…
x
Reference in New Issue
Block a user