逆向实战:从零破解网易云音乐评论接口加密参数
一、写在前面:为什么选择网易云音乐?在爬虫学习者的进阶之路上,网易云音乐是一座绕不开的“大山”。它的评论接口不仅采用了RSA + AES 混合加密,而且每次请求都必须动态生成params和encSecKey两个关键参数。更“贴心”的是,网易云在前端源码中故意放置了混淆后的 JavaScript 加密逻辑,让初学者望而却步。但正是这种“困难”,让它成为练习JavaScript 逆向、WebAssembly 调试和动态参数模拟的绝佳靶场。本博客将从零开始,手把手带你:分析网易云音乐 App 评论接口的完整请求链路;破解params(AES-CBC 加密)和encSecKey(RSA 加密)的生成逻辑;使用Python 3.11+纯代码模拟加密,无需额外启动 Node.js 或浏览器环境;写出高可用、可扩展的爬虫核心模块;讨论反爬对抗思路与长期维护策略。声明:本文仅用于技术研究与学习目的,请勿将爬虫用于商业用途或对网易云服务器造成过大压力。爬取数据时请遵守 robots.txt 及平台用户协议。目录一、写在前面:为什么选择网易云音乐?二、目标接口分析与抓包准备2.1 评论接口 URL2.2 必须携带的请求头2.3 请求体——两个神秘的参数2.4 响应体结构三、加密参数逆向全流程(核心)3.1 寻找加密入口——从 Web 源码入手3.2 AES-CBC 参数详解3.3 RSA 加密详解3.4 验证抓包数据四、Python 实现加密模块(纯代码无 Node)4.1 准备工作:安装依赖库4.2 固定常量定义4.3 生成随机 16 位密钥4.4 AES-CBC 加密4.5 RSA 加密(使用公钥)4.6 完整加密函数五、构造请求与爬取评论5.1 模拟请求函数5.2 解析评论数据5.3 多页爬取(带限流)六、获取真实 RSA 公钥(2026 最新方法)6.1 为什么不能直接使用上面伪代码中的公钥?6.2 构造 PEM 格式公钥七、完整可运行代码(2026 版)二、目标接口分析与抓包准备2.1 评论接口 URL在网易云音乐 App 或 Web 端,获取歌曲评论的接口为:textPOST https://music.163.com/weapi/v1/resource/comments/R_SO_4_{songId}?csrf_token=其中{songId}是歌曲的数字 ID(例如周杰伦《七里香》的 ID 为207010)。2.2 必须携带的请求头除了常规的User-Agent、Refere