很久之前就爬过网易云音乐的数据,但当时没有认真分析,现在项目 api 请求加密突然想参考网易云音乐的加密的方式,加密如下
i = self.create16RandomBytes()
encText = self.AESEncrypt(input_text, self.nonce)
encText = self.AESEncrypt(encText, i)
encSecKey = self.RSAEncrypt(i, self.public_key, self.modulus)
上面的算法一看就知道模仿 https 的加密流程的,但是我想不明白为什么要经过两次 aes,意义何在,我觉得随机生成 16 位的密钥通过 aes 加密,然后 rsa 加密密钥传给服务端就可以啦,求解答
1
iccfish 2020-10-29 13:36:11 +08:00
第一轮是 nonce,只能用一次的服务端参数,防止回放攻击。
|
3
brazz 2020-10-29 16:26:39 +08:00
你会解密网易云的参数么?逆向解密
|
5
brazz 2020-10-29 18:41:53 +08:00
如果能正向加密的话 那不就证明我们已经知道私钥了么?
|
6
BIAOXYZ 2020-10-29 21:04:00 +08:00
这是服务器端执行后要发给客户端的吗?是不是一次 session 中 self.nonce 可以复用啊?
|