標籤:bsp author 參數 end time post logs 介面 color
博主剛接到的介面需求使用了新的的安全機制,發送請求的時候要同步傳遞一個簽名,簽名內容由參數按照ascii排序後的值和一個動態key值組裝而成,使用MD5加密,在測試初期因為開發沒有程式碼完成加密時很麻煩,後來使用python實現了這一塊的自動加密
不多說,上代碼
#! /usr/bin/python# coding:utf-8 """ @author:Bingo@file: test.py @time: 2017/11/09 """import requestsimport hashlibdef param_order(dic): l = [] if isinstance(dic, dict): #判斷是否為字典 for k, v in dic.items(): l.append(k + ‘=‘ + v) #將字典的key和value取出來組裝成字串 l.sort() #將字典中的元素按照首字母排序 return ‘&‘.join(l) #返回key1=value1&key2=value2的字串 else: return ‘Not a dict‘if __name__ == ‘__main__‘: soure_para = { ‘name‘: ‘01111111‘, ‘num‘: ‘181111‘, ‘sin‘: ‘HELLO‘ } key = ‘111‘ string = param_order(soure_para) #擷取排序後的參數 keyMsg = hashlib.md5((string+key).encode(‘utf8‘)).hexdigest() #產生簽名 soure_para[‘keyMsg‘] = keyMsg #將簽名添加到參數中 # param = soure_para a = requests.request(‘POST‘,‘http://baidu.com‘,params=soure_para) #發送請求
Python模組學習之hashlib中MD5在介面測試中的應用