python实现请求数据包签名

493次阅读
没有评论

目录

  • 前言
  • 实操

前言

最近做渗透测试遇到对请求体进行签名的情况,如果这是一个app的话,我无话可说,可你是一个web系统啊,居然对敏感数据做了加密,并且对请求体做了签名,真的让我非常无语。于是经过一番折腾 在js中终于找到了加密方法(签名规则),于是通过python进行实现,以下为示例,主要记录以下python怎么快速对请求体做一次签名。

实操

请求体中有一个参数的值是变化的,一个是当前时间戳(毫秒级),另一个是sign,而sign=md5(key+时间戳)。其中key为固定值,时间戳直接通过函数获取即可,md5的话也可以通过hashlib库进行实现。

# -*- coding:utf-8 -*- import time import json import hashlib

# 该函数实现对指定字符串取hash def md5sum(str): m = hashlib.md5() m.update(str.encode("utf-8")) return m.hexdigest()

def get_sign(): #key,固定值 key = "jfdijfidnaindiji" # 当前时间的毫秒级的时间戳 requestime = int(round(time.time() * 1000)) # 先获取签名的原始值 sign0 = key+str(requestime) # 下方为请求的参数(json格式),其中requestTime为毫秒级时间戳,sign为key+时间戳的md5值 str1 = { "head": {"requestTime": requestime, "code": "20211219135521700912", "v": "10"}, "body": {"user":"EsRNkDvgoCryuQWIxpoY2w==","type":"1"}, "sign": sign0}

# 去除json字符串中:与值之间的空格 str2 = json.dumps(str1, separators=(",", ":")) # 获取hash sign = md5sum(str2) # 将签名的hash值添加到请求参数中 data = dict(str1) data['sign'] = sign

return json.dumps(data) print(get_sign())

执行结果
python实现请求数据包签名# 结语
欢迎各位读者关注我的csdn博客,或者关注微信公众号:小白学IT

神龙|纯净稳定代理IP免费测试>>>>>>>>天启|企业级代理IP免费测试>>>>>>>>IPIPGO|全球住宅代理IP免费测试

相关文章:

版权声明:Python基础教程2022-11-22发表,共计976字。
新手QQ群:570568346,欢迎进群讨论 Python51学习