jd 京东h5st 最新版 分析

news2024/9/21 18:56:05

声明:
本文章中所有内容仅供学习交流使用,不用于其他任何目的,抓包内容、敏感网址、数据接口等均已做脱敏处理,严禁用于商业用途和非法用途,否则由此产生的一切后果均与作者无关!

有相关问题请第一时间头像私信联系我删除博客!

前言

简单分析一下京东的h5st加密流程。

h5st

现需要对body进行sha256加密。

  sha256_digest: function(t) {
                function e(t, e) {
                    var r = (65535 & t) + (65535 & e);
                    return (t >> 16) + (e >> 16) + (r >> 16) << 16 | 65535 & r
                }
                function r(t, e) {
                    return t >>> e | t << 32 - e
                }
                function n(t, e) {
                    return t >>> e
                }
                function o(t, e, r) {
                    return t & e ^ ~t & r
                }
                function i(t, e, r) {
                    return t & e ^ t & r ^ e & r
                }
                function a(t) {
                    return r(t, 2) ^ r(t, 13) ^ r(t, 22)
                }
                function s(t) {
                    return r(t, 6) ^ r(t, 11) ^ r(t, 25)
                }
                function u(t) {
                    return r(t, 7) ^ r(t, 18) ^ n(t, 3)
                }
                return function(t) {
                    for (var e = "0123456789abcdef", r = "", n = 0; n < 4 * t.length; n++)
                        r += e.charAt(t[n >> 2] >> 8 * (3 - n % 4) + 4 & 15) + e.charAt(t[n >> 2] >> 8 * (3 - n % 4) & 15);
                    return r
                }(function(t, c) {
                    var l, d, f, p, v, h, m, g, y, w, b, _ = new Array(1116352408,1899447441,3049323471,3921009573,961987163,1508970993,2453635748,2870763221,3624381080,310598401,607225278,1426881987,1925078388,2162078206,2614888103,3248222580,3835390401,4022224774,264347078,604807628,770255983,1249150122,1555081692,1996064986,2554220882,2821834349,2952996808,3210313671,3336571891,3584528711,113926993,338241895,666307205,773529912,1294757372,1396182291,1695183700,1986661051,2177026350,2456956037,2730485921,2820302411,3259730800,3345764771,3516065817,3600352804,4094571909,275423344,430227734,506948616,659060556,883997877,958139571,1322822218,1537002063,1747873779,1955562222,2024104815,2227730452,2361852424,2428436474,2756734187,3204031479,3329325298), x = new Array(1779033703,3144134277,1013904242,2773480762,1359893119,2600822924,528734635,1541459225), j = new Array(64);
                    t[c >> 5] |= 128 << 24 - c % 32,
                    t[15 + (c + 64 >> 9 << 4)] = c;
                    for (var A = 0; A < t.length; A += 16) {
                        l = x[0],
                        d = x[1],
                        f = x[2],
                        p = x[3],
                        v = x[4],
                        h = x[5],
                        m = x[6],
                        g = x[7];
                        for (var k = 0; k < 64; k++)
                            j[k] = k < 16 ? t[k + A] : e(e(e(r(b = j[k - 2], 17) ^ r(b, 19) ^ n(b, 10), j[k - 7]), u(j[k - 15])), j[k - 16]),
                            y = e(e(e(e(g, s(v)), o(v, h, m)), _[k]), j[k]),
                            w = e(a(l), i(l, d, f)),
                            g = m,
                            m = h,
                            h = v,
                            v = e(p, y),
                            p = f,
                            f = d,
                            d = l,
                            l = e(y, w);
                        x[0] = e(l, x[0]),
                        x[1] = e(d, x[1]),
                        x[2] = e(f, x[2]),
                        x[3] = e(p, x[3]),
                        x[4] = e(v, x[4]),
                        x[5] = e(h, x[5]),
                        x[6] = e(m, x[6]),
                        x[7] = e(g, x[7])
                    }
                    return x
                }(function(t) {
                    for (var e = Array(), r = 0; r < 8 * t.length; r += 8)
                        e[r >> 5] |= (255 & t.charCodeAt(r / 8)) << 24 - r % 32;
                    return e
                }(t = function(t) {
                    t = t.replace(/\r\n/g, "\n");
                    for (var e = "", r = 0; r < t.length; r++) {
                        var n = t.charCodeAt(r);
                        n < 128 ? e += String.fromCharCode(n) : n > 127 && n < 2048 ? (e += String.fromCharCode(n >> 6 | 192),
                        e += String.fromCharCode(63 & n | 128)) : (e += String.fromCharCode(n >> 12 | 224),
                        e += String.fromCharCode(n >> 6 & 63 | 128),
                        e += String.fromCharCode(63 & n | 128))
                    }
                    return e
                }(t)), 8 * t.length))
            }

接着通过sign方法初始化最后加密。

结果

总结

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

侵权首页联系删除博客

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/2141981.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

尚品汇-秒杀列表、详情、倒计时、获取下单码(五十二)

目录&#xff1a; &#xff08;1&#xff09;秒杀列表与详情 &#xff08;2&#xff09;在service-activity-client模块添加接口 &#xff08;3&#xff09;秒杀详情页面功能介绍 &#xff08;1&#xff09;秒杀列表与详情 封装秒杀列表与详情接口、 封装接口 package com…

Python 解析 Charles JSON Session File (.chlsj)

Charles 代理&#xff0c;是一款抓包软件&#xff0c;可以帮助我们抓取浏览器请求跟响应。 1、在 Filter 里面输入需要抓包的网址 2、右键 Export Session 3、文件类型选择 JSON Session File (.chlsj) 保存 4、解析响应的数据结构 response.body.text 是文本字符串。 # 导入…

SOMEIP_ETS_113: SD_Empty_Options_Array

测试目的&#xff1a; 验证DUT能够拒绝一个选项数组长度为0的SubscribeEventgroup消息&#xff0c;并以SubscribeEventgroupNAck作为响应。 描述 本测试用例旨在确保DUT遵循SOME/IP协议&#xff0c;当接收到一个选项数组长度为0的SubscribeEventgroup消息时&#xff0c;能够…

网络设备登录——《路由与交换技术》实验报告

目录 一、实验目的 二、实验设备和环境 三、实验记录 1.通过 Console 登录 步骤1:连接配置电缆。 步骤2:启动PC,运行超级终端。 步骤3:进入Console 配置界面 2.通过 Telnet 登录 步骤1:通过 Console 接口配置 Telnet 用户。 步骤2:配置 super 口令 步骤3:配置登录欢迎…

Kamailio-基于Homer与heplify的SIP信令监控-3

接上2篇文章&#xff0c;你已经顺利地安装并部署了Homer相关服务&#xff0c;配置好了服务并顺利启动了。这个时候你已经算是搭建完成了一个SIP监控、分析体系&#xff0c;那应该怎么去用呢&#xff1f; 跟着我&#xff0c;你将学会&#xff1a; 下载并安装 踩坑&#xff1a;…

PyQt5-折叠面板效果

效果预览 实际效果中带有白色面板,看如下代码 实现代码 import sys from PyQt5.QtWidgets import QApplication, QWidget, QVBoxLayout, QPushButton, QFrame, QLabel, QSizePolicy from PyQt5.QtCore import QPropertyAnimation, QEasingCurve, Qtclass CollapsiblePanel(QW…

夕阳红老年大学视频教学网站管理系统设计与实现,按用户最近浏览分类字段推荐视频课程-留言和评论分词过滤

目录 1. 选题社会意义 2. 选题技术意义 3. 功能介绍 4. 技术实现 随着人口老龄化的加剧&#xff0c;老年人的精神文化生活需求日益增加。传统的老年大学由于场地有限、师资力量不足等原因&#xff0c;难以满足广大老年人的学习需求。因此&#xff0c;开发一个面向老年人的在…

【C++】STL数据结构最全函数详解2-向量vector

关于STL&#xff0c;我们之前浅浅提过&#xff1a;这里 另外对于栈&#xff0c;这里有更加详尽的介绍&#xff1a;CSTL常用数据结构1详解---栈&#xff08;stack&#xff09;-CSDN博客 这个系列将会更加深入地从函数原型开始用详细的例子解释用法 首先这一篇介绍的是一个非常…

二叉树OJ题——二叉树的最大深度

文章目录 一、题目链接二、解题思路三、解题代码 一、题目链接 二叉树的最大深度 二、解题思路 三、解题代码

51单片机应用开发---数码管的控制应用

实现目标 1、掌握数码管结构、驱动原理及应用&#xff1b; 2、掌握数码管段码表推导&#xff1b; 3、会编程让开发板8个数码管动态显示。 一、什么是数码管&#xff1f; 1.数码管定义 数码管&#xff0c;也称为LED数码管&#xff0c;基本单元是发光二极管(LED)。分为七段数…

Makefile 学习笔记(一)gcc编译过程

环境准备 .linux 系统(虚拟机) VS code linux 编译过程 预处理: 把.h .c 展开形成一个文件.宏定义直接替换 头文件 库文件 .i 汇编&#xff1a; .i 生成一个汇编代码文件 .S 编译&#xff1a; .S 生成一个 .o .obj 链接: .o 链接 .exe .elf gcc c语言 g c语言 gcc的使用 …

钥匙和房间的题解——使用dfs或bfs进行图遍历

841. 钥匙和房间 这 n 个房间看成有向图中的 n 个节点&#xff0c;在x号房拿到了打开y号房的钥匙&#xff0c;可以看作是图中的 x 号点到 y 号点的一条有向边。 这样一来&#xff0c;问题就变成了给定一张有向图&#xff0c;询问从 0 号节点出发是否能够到达所有的节点。 DFS深…

1.3 计算机网络的分类

欢迎大家订阅【计算机网络】学习专栏&#xff0c;开启你的计算机网络学习之旅&#xff01; 文章目录 前言一、按分布范围分类二、按传输技术分类三、按拓扑结构分类四、按使用者分类五、按传输介质分类 前言 计算机网络根据不同的标准可以被分为多种类型&#xff0c;本章从分布…

【STL】 set 与 multiset:基础、操作与应用

在 C 标准库中&#xff0c;set 和 multiset 是两个非常常见的关联容器&#xff0c;主要用于存储和管理具有一定规则的数据集合。本文将详细讲解如何使用这两个容器&#xff0c;并结合实例代码&#xff0c;分析其操作和特性。 0.基础操作概览 0.1.构造&#xff1a; set<T&…

CefSharp_Vue交互(Element UI)_WinFormWeb应用(3)---通过页面锁屏和关机(含示例代码)

一、预览 实现功能:通过vue标题栏按钮锁屏和关机 1.1 预览 1.2 代码 锁屏代码csharp LockWorkStation() 关机代码chsharp 注意vue代码参数和此参数一致(0/1/2) 方法ExitWindowsEx()

春秋云境靶场之CVE-2022-29464

一.靶场环境 1.下载靶场 根据题目提示&#xff0c;存在文件上传漏洞 2.启动靶场 打开之后&#xff0c;页面显示 然后就跳转到一个登录页面 二.登录页面 1.尝试登录 我们尝试弱口令登录admin,admin&#xff0c;跳转到连接超时页面 当我们再次点击这个链接后&#xff0c;就会…

Leetcode面试经典150题-20.有效的括号

给定一个只包括 (&#xff0c;)&#xff0c;{&#xff0c;}&#xff0c;[&#xff0c;] 的字符串 s &#xff0c;判断字符串是否有效。 有效字符串需满足&#xff1a; 左括号必须用相同类型的右括号闭合。左括号必须以正确的顺序闭合。每个右括号都有一个对应的相同类型的左括…

【网络原理】❤️Tcp 常用机制❤️ —— 延时应答,捎带应答, 面向字节流, 异常情况处理。保姆式详解 , 建议收藏 !!!

本篇会加入个人的所谓鱼式疯言 ❤️❤️❤️鱼式疯言:❤️❤️❤️此疯言非彼疯言 而是理解过并总结出来通俗易懂的大白话, 小编会尽可能的在每个概念后插入鱼式疯言,帮助大家理解的. &#x1f92d;&#x1f92d;&#x1f92d;可能说的不是那么严谨.但小编初心是能让更多人…

【程序员写的诗】《享平安》日期:2021-11-03 作者:橙

享平安 《享平安》 关关难过&#xff0c;关关过。 世事无常&#xff0c;平常心。 顾好自己&#xff0c;和家人。 平平安安&#xff0c;享人生。 创作背景 背景&#xff1a;新冠疫情 涉及32个省&#xff0c;河南郑州未能辛免 ------写于2021-11-03 程鹏 AI豆包点评和解释 这…

前端vue3打印,多页打印,不使用插件(工作中让我写一个打印功能)

说下总体思路&#xff0c;创建一个组件&#xff0c;里面放多个span字段&#xff0c;然后根据父组件传入的参数&#xff0c;生成子组件&#xff0c;最好我们打印子组件的信息即可。通过我多次ai&#xff0c;探索最后成功了。 子组件代码 media print 这个我要讲一下&#xff…