一个微信小程序,所有的接口url都是一样的,通过post体中的一个字段来判断行为 url都是: https://xxxxx.cn/gateway/link.do 这些接口都需要data_digest做校验,类似sign值的作用,修改请求后就会校验失败 这个值怎么算的呢: 先把小程序代码拿下来,搜索data_digest 然后顺着往上找,b方法是自己实现的,详细下面说明
实际上g是下面的值(通过我打码的几个参数与抓包的请求比较),上面这个应该是测试环境或者开发环境 上面截图说的 b = new c.default.MD5().b64 看data_digist的值,有“/”,肯定不是正经的base64 这个MD5是在一个hashes.js里实现的,b64也是在这里 具体怎么实现的不管了,把相关代码(指存在依赖关系的)拿下来
逻辑是: 我们先把content(来自抓包的参数)与g(来自小程序源码)相加,然后调用b函数即可得到data_digest
可以看到与请求里的data_digest是一样的