lchloride / NeteaseMusicCacheDecode

This project is used to decode music cache file from Netease Music.
24 stars 10 forks source link

请教下加密 #8

Open w2468624269 opened 6 years ago

w2468624269 commented 6 years ago

厉害厉害,主要想请教的是你是怎么知道网易的加密方式,能大概说说吗,谢谢

lchloride commented 6 years ago

我要是说这个靠人品你会不会来打我:no_mouth:

我的出发点很简单:如果我是网易的工程师,我会怎么做

第一,解密的方法应该是简单并且能够高效执行的,否则听歌的时候解析数据会占用很多时间,造成卡顿

第二,加密解密都应该很容易执行,这样也能节省服务器成本

第三,解密过程,不能依靠全局数据(元数据除外),因为缓冲了多少就会解析多少,如果依赖未缓冲的部分那就做不到了

然后加上我的两个发现:

于是一个很自然的设想就出来了:0x00对应0xA3

不过这个是如何对应的我并不知道。于是,两个试验:A. 0xA3 = (0x00 + 0xA3) % 0xFF; B. 0xA3 = 0x00 XOR 0xA3。

B就被试验出来了。再想想0xA3=163和网易的关系,emmm,很有道理。(一个小时解决)

所以我觉得,当时真是人品爆炸。

FJSEN commented 6 years ago

@lchloride 1小时试出加密密码 厉害了 我的哥