
python笔记44-HTTP对外接口sign签名
发布日期:2021-05-09 09:02:29
浏览次数:18
分类:博客文章
本文共 4244 字,大约阅读时间需要 14 分钟。
������
���������������������������������������sign������������������������������������������apikey ,������������������������������������������������������������������������������
sign���������������������������������sign������
������������sign���������������
- ���1���: ���������������������������������������������������sign���������������������������������������������������������������������
- ���2���: ������������������������������������1���1������2���2���������n���n���������������������������������������������������������������������������������������������������"������������������������������������������������������������
- ���3���: ������������������������������������key������������2���������������������key���
- ���2���: ������������������������������������������������������key(���������������key���������������������������������������������)���������������md5������������32���������������������������������.
- ���4���: ���������3���������������������������������md5���(32���)���������������������������sign���������
������������������������http://www.xxx.com/interface.aspx?sign=sign_value&p2=v2&p1=v1&method=cancel&p3=&pn=vn
������������������������������post������������������������sign���������������sign_value���������������������������������������������������������������sign���������������������������������������������p3���������p2=v2&p1=v1&method=cancel&pn=vn������������������������������������������method=cancel&p1=v1&p2=v2&pn=vn.������������������������������������������������������������methodcancelp1v1p2v2pnvn������������������������������������������������������������������key������������������abc������������������������methodcancelp1v1p2v2pnvnabc������������������������������������������������������md5���������������������������abcdef������������������sign���������������������������md5���������������������������������������������������������������������������utf-8������������GBK������������������������������������������������������������������������������python������sign������
���������������������apikey���12345678������������body���������
body = { "username": "test", "password": "123456", "mail": "", "sign": "���������������"}
������python������������
import hashlib# ������-������ QQ������������717225969apikey = "12345678" # ������������������������������body = { "username": "test", "password": "123456", "mail": ""}# ������������������������key=value������a = ["".join(i) for i in body.items() if i[1] and i[0] != "sign"]print(a)# ���������ASCII���������������������strA = "".join(sorted(a))print(strA)# ���strA���������������apiKey������striSignTemp���������striSignTemp = strA+apikey# ���strSignTemp������������������������������������������MD5������# MD5������def jiamimd5(src): m = hashlib.md5() m.update(src.encode('UTF-8')) return m.hexdigest()sign = jiamimd5(striSignTemp.lower())print(sign)# ������sign���������������body���body["sign"] = signprint(body)
������������
['usernametest', 'password123456']password123456usernametest1aca01806e93bb408041965a817666af{'username': 'test', 'password': '123456', 'mail': '', 'sign': '1aca01806e93bb408041965a817666af'}
������������
������������������������������������������������������������������
import hashlib# ������-������ QQ������������717225969def sign_body(body, apikey="12345678"): '''������body sign������''' # ������������������������key=value������ a = ["".join(i) for i in body.items() if i[1] and i[0] != "sign"] # print(a) # ���������ASCII��������������������� strA = "".join(sorted(a)) # print(strA) # ���strA���������������apiKey������striSignTemp��������� striSignTemp = strA+apikey # ���strSignTemp������������������������������������������MD5������ # MD5������ def jiamimd5(src): m = hashlib.md5() m.update(src.encode('UTF-8')) return m.hexdigest() sign = jiamimd5(striSignTemp.lower()) # print(sign) # ������sign���������������body��� body["sign"] = sign # print(body) return bodyif __name__ == '__main__': apikey = "12345678" # ������������������������������ body = { "username": "test", "password": "123456", "mail": "", "sign": "" } print(sign_body(body, apikey="12345678"))
发表评论
最新留言
表示我来过!
[***.240.166.169]2025年04月21日 02时38分13秒
关于作者

喝酒易醉,品茶养心,人生如梦,品茶悟道,何以解忧?唯有杜康!
-- 愿君每日到此一游!
推荐文章
Dubbo笔记 ② : 架构概述
2021-05-10
ROS参数服务器
2021-05-10
malloc分配0个字节
2021-05-10
new与delete细节探索
2021-05-10
vim配置
2021-05-10
原生Javascript实现New方法
2021-05-10
Promise串行执行
2021-05-10
CSS三栏布局问题
2021-05-10
js数据类型检测
2021-05-10
winform关闭窗口 取消关闭操作
2021-05-10
解决VS2012的 未能将网站配置为使用ASP.NET4.5问题
2021-05-10
mysql权限问题
2021-05-10
Tomcat中jdk版本与项目版本不一致造成404错误以及Eclipse修改jdk版本
2021-05-10
Spring通过工厂方法配置Bean
2021-05-10
Spring事务的两种常用传播方式
2021-05-10
配置SpringMVC中的视图解析器
2021-05-10
Redis6大基础数据结构以及在spring中的常用命令
2021-05-10
【Unity3D】Scene窗口看不见任何物体问题
2021-05-10
【OpenGL】蓝宝书第七章——纹理高级知识
2021-05-10