网易云音乐api加密算法详解 2016.12.7

本文旨在讲解网易云的加密算法,仅供参考,请不要用于非法用途。截止本文发布时间,此加密算法仍然适用。查看原文

网易云音乐前段时间更改了api接口,将以前的GET请求变成了POST请求,并且POST的参数是加密后的参数,具体请看图片。为了突破爬虫限制,需要破解其中的加密算法。

改进后POST请求参数如下:


用于加密的核心代码如下(代码在http://s3.music.126.net/sep/s/2/core.js?06b50101e4968eb701d6b24cd94b48d2第11173行开始):

生成随机16位字符串
function a(a) {
        var d, e, b = "abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789", c = "";
        for (d = 0; a > d; d += 1)
            e = Math.random() * b.length,
            e = Math.floor(e),
            c += b.charAt(e);
        return c
    }

AES加密函数
    function b(a, b) {
        var c = CryptoJS.enc.Utf8.parse(b)
          , d = CryptoJS.enc.Utf8.parse("0102030405060708")   偏移量已知
          , e = CryptoJS.enc.Utf8.parse(a)
          , f = CryptoJS.AES.encrypt(e, c, {
            iv: d,
            mode: CryptoJS.mode.CBC
        });
        return f.toString()
    }

RSA加密函数
    function c(a, b, c) {
        var d, e;
        return setMaxDigits(131),
        d = new RSAKeyPair(b,"",c),
        e = encryptedString(d, a)
    }

主入口
    function d(d, e, f, g) {
        var h = {}
          , i = a(16);
        return h.encText = b(d, g), 密钥g已知
        h.encText = b(h.encText, i),
        h.encSecKey = c(i, e, f),  e和f已知
        h
    }

其中入口在function d处,传入的参数为:


d是正常的请求参数
e和f是RSA中加密所需的key和modulus
g是AES加密的key

function d中可以看出加密流程,先随机生成一个16位的密钥,将正常的请求参数与g先加密一次,再与16位的密钥加密一次,此结果为POST参数的param。由于密钥是在客户端上随机产生的,所以要将随机密钥进行一次RSA加密后作为encSecKey参数POST到服务端。

所以,整体加密方式为,客户端生成16位密钥,将请求参数加密两次后,将参数加密后的结果和密钥加密后的结果一起传到服务端完成解密过程。

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • Spring Cloud为开发人员提供了快速构建分布式系统中一些常见模式的工具(例如配置管理,服务发现,断路器,智...
    卡卡罗2017阅读 135,347评论 19 139
  • 最近公司用到RSA数据加密传输,本人也只会使用,并不知其原理,刚好今天在csdn看到一位大牛的博客写得很到位,遂搬...
    爸比好酷阅读 5,244评论 0 1
  • 作者简介 原创微信公众号郭霖 WeChat ID: guolin_blog 大家早上好,转眼假期就结束了,又到了...
    木木00阅读 4,930评论 0 9
  • 困在你的边缘 绕地球一圈 云来自天边 细雨缠绵 未知你的明天 我的世界寻遍 在梦里沉眠 花好月圆 曾经的誓言 风带...
    文山鹿阅读 2,976评论 62 53
  • 草青青没艳,风曼曼弥香。 楚楚骄姿态,娉娉嫁女妆。 好合约美美,结侣待双双。 夜夜燃灯亮, 涓涓恋念长。 注:野地...
    房谋杜断阅读 4,849评论 15 9