Python 介面驗籤測試

2021-09-24 05:57:51 字數 1368 閱讀 8003

最近有新的介面要上線,測試通過需滿足以下條件:

1、身份認證 2、驗籤(防篡改、防重放)3、輸入 處理 輸出等。

身份認證使用sso,直接pass,我們重點放在驗籤:

引數簽名:

將所有引數key的首字母按照accii 從小到大排列 (一對引數的key和value用=號連線,兩個引數之間用&連線)拼接,例如:username=secguard&password=whoami_123!,拼接完成後的對整個字串進行轉小寫,然後尾部加上&signkey=簽名的key,最後將字串用md5加密生成:signature

python剛開始接觸,不太習慣:

now_time = datetime.datetime.now().strftime('%y-%m-%d %h:%m:%s') #獲取當前日期

data =

keys =

for key in data:

keys = sorted(keys) #引數首字母ascii公升序

aa=for key in keys:

if isinstance(data[key],int):

data[key]= str(data[key])

#print(" ascii", ord('a'),ord('k'),ord('p'),ord('c'),ord('s'))

str=''

index=0

for s in aa:

index=index+1

if index == len(aa):

str = str+s

else:

str = str+s+'&'

str1 = str.lower()+"&signkey=tsprgauqg9luhjdoklkf9xbos4sltsaor"

signature = hashlib.md5(str1.encode("utf-8")).hexdigest() #對引數拼接後進行md5

data.update() #驗籤字串加入引數字典

"""最後生成的請求體json如下:

data =

"""res = requests.post(url=url,data=json.dumps(data),headers=headers)

print(json.loads(res.text))

#print(res.text)

加簽驗籤的理解

對加簽驗籤的理解 加簽驗籤模組早已做完了,從剛開始的一臉懵逼,到上線,前前後後兩周多吧,現在整理一下思路,記錄一下。加簽驗籤,傳送訊息方,對訊息加簽名 接受訊息方,驗證簽名是否正確。做加簽驗籤的目的主要目的就是,驗證訊息的完整性 簡單來說,傳送訊息方 1 根據訊息內容形成摘要 2 根據摘要形成簽名字...

spring mvc 加簽驗籤方案

一 請求格式要求 1.get 請求 url示例 http xx api test.do?a 1 b 2 c 3 d 4 content type 簽名key值與a 1 b 2 c 3 d 4 進行一定處理後加密得到 2.post請求 url示例 http xx api test.do content...

ECDSA簽名 驗籤

ecdsa簽名每次結果不同。原因 ecdsa簽名過程中混入隨機值,生成簽名結果不同。公鑰證書驗籤沒問題。1.簽名過程 假設要簽名的訊息是乙個字串 hello world dsa簽名的第乙個步驟是對待簽名的訊息生成乙個訊息摘要。不同的簽名演算法使用不同的訊息摘要演算法。比如,dss使用sha1來生成1...