在这里, 我修改了部分js的代码, 便于python解析, 网站本身的代码我就不完整的贴上来了, 前面的截图都有. 在这里有一个坑, 如果用execjs
遇到转义字符会有问题, 当然这个代可以手动吧转义代码去掉, 或者用另一个库js2py
.
到这里, 返回数据的解密就完成了, 下面我们来看一看请求的参数是如何加密的.
采用之前的方案, 在url处下断点, 查看找到关键函数, 我们可以发现这里调用是youzyEpt
这个函数进行的加密
从源码中找到这个函数, 先来看看.
显然这里采用的AES进行的加密, 这么明显, 不过多解释了, 我们来看一下他的密钥是怎么得到的, 查看源码, 发现3个关键文件
读一下代码, 不难发现密钥是: [11, 23, 32, 43, 45, 46, 67, 8, 9, 10, 11, 12, 13, 14, 15, 16]
, 下面我们直接用Python写加密算法吧, 因为我不想引入js的aes加密算法了, 调用js还麻烦.
from Crypto.Cipher import AESdef params_encrypt(data): key = bytes([11, 23, 32, 43, 45, 46, 67, 8, 9, 10, 11, 12, 13, 14, 15, 16