一、最新京东h5st 逆向


1、h5st 的位置


搜索关键字h5st很快找到:

(h5st 4.4所在位置)

2、签名代码如下:

      , r = JSON.stringify(a)
              , c = (new Date).getTime() || "1"
              , d = {
                appid: "pc-item-soa",
                functionId: "pc_detailpage_wareBusiness",
                client: "pc",
                clientVersion: "1.0.0",
                t: c,
                body: r
              , p = this;
            try {
                var l = JSON.parse(JSON.stringify(d));
                l.body = SHA256(r).toString(),
                window.PSign.sign(l).then(function(e) {
                    d.h5st = encodeURI(e.h5st);
                    try {
                        getJsToken(function(e) {
                            e && e.jsToken && (d["x-api-eid-token"] = e.jsToken),
                            d.loginType = "3",
                            d.scval = pageConfig.product.skuid,
                            d.uuid = getCookie("__jda") || "",
                            p.getDataColor(d)
                        }, 600)

二、h5st结构

1、h5st结构

位置字段名说明值格式备注
1time时间字符串20240225161830036
2fingerPrint指纹ygntztz5dhctq666自定义算法,就是随机字符串删删减减
3appId应用编号fb5df业务页面的appId
4token令牌tk03we1da1dc618nhIyKvXdFjSz7Aca_m81whSfdIvbv1LjGxUca6s2zDDxZl5Botqaf0OpOyPPJvwj9lzTObIgbRDkr下面这个对象的值.join('')
{
"magic": "tk",
"version": "02",
"platform": "w",
'adler32': "其它参数的校验",
"expires": "41",
"producer": "l",
"expr": "类似3+3+3+2x2的base64编码,生成sign会用到"
"cipher": "HmacSHA256结果,跟fp有关"
}
5sign签名dc2dfdfa20a0349d945bf43e7725f8ef对请求参数进行HmacSHA256加密

加密使用的key生成算法

最初原始字符串:token + fp + timestamp + "22" + appid + "Z=
6version算法版本4.4固定值
7timestamp毫秒时间戳1708849110036当前时间
8sent环境数据bc15aeea977fc5bc2b4f3072713e53bae506e78af453d4c3437fdba2aecb38b26b091907b47c360e2f03e6bcf567ea402f0933a4c1778021a2b07f4f4282aed08e766961014........AES-128-CBC加密

原始字符串参考:

{
"sua": "Macintosh; Intel Mac OS X 10_15_7",
"pp": {},
"extend": {"wd": 0, "l": 0, "ls": 5, "wk": 0, "bu1": "0.1.9", "bu2": -1, "bu3": 43, "bu4": 0},
"random": "27_CACK7qU5",
"v": "h5_file_v4.3.3",
"fp": "xxx",
"bu1": "0.2.0"
}

2、参数结构

参数
functionId接口ID不同接口的一个唯一ID
t时间戳
appid固定的
clientVersion可写死
client可写死
bodybody 是一个比较简单的aes加密参照js 可以直接获取
h5st这是参数是主要的加密参数

三、h5st历史版本演进

2023/08/04

第五段算法进行了更新,更新为md5格式。加密key是一样的;

2023/08/06

第八段算法的秘钥进行更新,之前的秘钥是wm0!@w_s#ll1flo;

2023/08/10

fp算法进行了更新,更新为16位限定字符串,不可随机。

2023/10/10

版本更新到v4.2,主要是aes部分的key更改了。 第五段有更新,以及fp也改了一下。

2023/12/17

部分接口更新到v4.3。基本上都是fp生成算法改改 aes秘钥改改 第五段加密方式改改。

2024/06/03
最近又搞出一个什么4.7.2版本,魔改第八段base64.

四、商品详情API接口

(图2商品详情接口)

五、价格API接口

(图3价格接口)

技术支持:UVHvvJozOTg0ODg3MuW+ruS/oe+8mmJ5YzYzNTLmiJZtZXRhYnljZueUteaKpe+8mmJ5YzAx (base64解码)

# python
Logo

开放原子开发者工作坊旨在鼓励更多人参与开源活动,与志同道合的开发者们相互交流开发经验、分享开发心得、获取前沿技术趋势。工作坊有多种形式的开发者活动,如meetup、训练营等,主打技术交流,干货满满,真诚地邀请各位开发者共同参与!

  • 浏览量 2669
  • 收藏 0
  • 0

所有评论(0)