麦当劳APP authorization算法分析

声明

本文章中所有内容仅供学习交流使用,不用于其他任何目的,抓包内容、敏感网址、数据接口 等均已做脱敏处理,严禁用于商业用途和非法用途,否则由此产生的一切后果均与作者无关!
有相关问题请第一时间点击头像看简介或私信联系我删除博客!
部分python

复制代码
def request(method, path, params=None, json_body=None):
    ..............................
    headers = dict(BASE)
    headers.update({
        "v": V, "ct": CT, "p": P,
        "sv": SV, "x-mcd-gw-v": XMCDGWV,
        "token": TOKEN, "mcdtoken": TOKEN,
        "sid": "",
        "st": st, "nonce": nonce,
        "d": D_HEADER,                                 
        "x-hmac-digest": b64encode(                     
            hmac.new(SIGN_KEY.encode(), body, hashlib.sha256).digest()
        ).decode(),
    })

    authorization = make_authorization(method, path, params, headers, date)
    headers["authorization"] = authorization

    if method == "GET":
        return requests.get(url, headers=headers)
    else:
        headers["Content-Type"] = "application/json"
        return requests.post(url, headers=headers, data=body)


if __name__ == "__main__":
    r = request("GET", "/bff/spc/menu", {
        "storeCode": "1400422",
        "orderType": "1",
        "beCode": "140042211",
        "beType": "4",
        "orderMode": "0",
        "pinId": "",
        "dayPartCode": "2",
    })
    print(r.status_code)
    print(r.text[:800])

结果

总结

1.出于安全考虑,本章未提供完整流程,调试环节省略较多,只提供大致思路,具体细节要你自己还原,相信你也能调试出来。

2.具体更多细节请看名字进入详情了解更多细节,具体细节要你自己还原,相信你也能调试出来。

相关推荐
LeeShowDev6 天前
TapTap Maker的第一款游戏
app·独立游戏
mmsx10 天前
Android 一个设备多个 App 抢:跨进程共享服务的架构设计
android·kotlin·app
mmsx10 天前
Android GIS系列 栅格怎么存、格网怎么归算:两个容易混淆的 GIS 链路
android·性能优化·app
mmsx10 天前
Android GIS系列 串口、蓝牙、USB、网络:一套统一抽象怎么扛住四种通道
android·app·产品
mmsx16 天前
Android GIS系列 内存加锁、SQLite 开事务:矢量数据集双层并发设计
android·性能优化·app
Kingexpand_com18 天前
企业车队运营痛点解析:传统人工模式如何实现数字化升级
小程序·app·软件开发·app定制开发·打车用车app·车队
不要喷香水19 天前
01-网络层与鉴权
app·档案·pda
不要喷香水19 天前
00-总览与架构
kotlin·app·档案管理