当前位置: 首页 > news >正文

第12章 day13 关于json请求体

第1知识点:关于json请求体
第2知识点:关于精准请求(如何排除干扰请求)
第3知识点:入口定位
一、关键字方法
(1) 方法关键字
encrypt :加密入口
decrypt :解密入口
JSON.stringify:加密入口
JSON.parse:解密入口
(2) key关键字
(3) headers关键字 xxx()
(4) 拦截器关键字
interceptors.request.use
interceptors.response.use
(5) 路径关键字

第4知识点:断点与断点调试
普通断点
XHR断点
条件断点
日志断点
脚本断点

import time
import base64
import requests
from Crypto.Cipher import AES
from Crypto.Util.Padding import unpad
from hashlib import md5
import jsonheaders = {}# 生成sign值
def get_sign(data):# (1) 剔除空值new_data = {}for key, val in data.items():# print(key, val)if val == "" or val == 0:continuenew_data[key] = val# print(new_data)# (2) 排序s = new_data.items()# print(s)ret = sorted(s, key=lambda item: item[0])# print(ret)s2 = ""for key, val in ret:s2 += key + str(val)# print(s2)ra = "B3978D054A72A7002063637CCDF6B2E5"n = ra + s2# (3) 生成md5值m = md5()m.update(n.encode())sign = m.hexdigest()# print(sign)  # 4145a19057c83fd6a99163d0bd2f5e88return signdef decrypt(res):# 基于Python做出AES的解密# (1) base64解码base64_encrypt_data = res.json().get("Data")# print(base64_encrypt_data)encrypt_data = base64.b64decode(base64_encrypt_data)# print(encrypt_data)# (2) aes解密k = 'EB444973714E4A40876CE66BE45D5930'.encode()i = 'B5A8904209931867'.encode()aes = AES.new(key=k, mode=AES.MODE_CBC, iv=i)data = aes.decrypt(encrypt_data)data = unpad(data, 16)data = json.loads(data)print(data)for i in data["Table"]:print(i.get("NAME"))def main():for i in range(1,10):json_data = {"ts": int(time.time() * 1000),"pageNo": i,"pageSize": 20,"total": 2798,"AREACODE": "","M_PROJECT_TYPE": "","KIND": "GCJS","GGTYPE": "1","PROTYPE": "","timeType": "6","BeginTime": "2024-09-29 00:00:00","EndTime": "2025-03-29 23:59:59","createTime": ""}sign = get_sign(json_data)headers["portal-sign"] = signresponse = requests.post('https://ggzyfw.fujian.gov.cn/FwPortalApi/Trade/TradeInfo', headers=headers,json=json_data)# 解密decrypt(response)time.sleep(1)if __name__ == '__main__':main()
http://www.hskmm.com/?act=detail&tid=17273

相关文章:

  • CF1349
  • 学习敏捷课程PSM,自考证书分享
  • Rust/C/C++ 混合构建 - 用Bazel构建Rust与C
  • 9.24(补)
  • 9月25号
  • CCF CSP-J 2025_from_黄老师_d
  • 亚马逊与AWS如何通过漏洞赏金计划构建深度安全防御
  • sync.pool 面试题
  • 【JavaEE】SpringIoC与SpringDI - 详解
  • 24.Linux硬盘分区管理 - 详解
  • CCF CSP-J 2025_from_黄老师_km
  • AI一周资讯 250918-250925
  • 云栖小镇现场追踪!触摸AI 未来
  • AT_arc154_d [ARC154D] A + B C ?
  • SQL注入-联合注入
  • JVM对象创建与内存分配
  • 目录
  • 交互:在终端中输入用户信息
  • 电脑迁移技巧:适用于 Windows 10/11 的免费磁盘克隆优秀的工具
  • Java学习日记9.18
  • 一种CDN动态加速首次访问加速方法
  • 9.25
  • 字典
  • CF1716题解
  • 使用vosk模型进行语音识别
  • AI Agent如何重塑人力资源管理?易路iBuilder平台实战案例深度解析
  • docker-compose + macvlan + Elasticsearch - 9.1.4 + Kibana - 9.1.4
  • WinForm 计时器 Timer 学习笔记
  • RocketMQ入门:基本概念、安装、本地部署与集群部署 - 详解
  • 【LeetCode】122. 买卖股票的最佳时机 II