Python-MD5加密演算法介面測試

一步一腳印丶發表於2020-05-18

前言

在之前的Python系列的隨筆中,我跟小夥伴們講述了Python-AES加密演算法介面測試Python-SHA256加密演算法介面測試,今天我們來學習一下登入密碼是md5加密的情況下,該如何使用python進行介面測試。

一:先來看一下python是如何把字串加密成MD5字串的

 

import hashlib #匯入匯入模組hashlib
def MD5_demo(str):
    md= hashlib.md5()# 建立md5物件
    md.update(str.encode(encoding='utf-8'))
    return md.hexdigest()

if __name__=="__main__":
    # 待加密資訊
    str = 'abcd123456'
    md5_str = MD5_demo(str)
    print('加密後為 :' + md5_str)

 

MD5加密後的結果顯示:

 

注:

  • hexdigest()在英語中hex有十六進位制的意思,因此該方法是返回摘要,作為十六進位制資料字串值
  • update(str.encode(encoding='utf-8'))這個函式裡面需要對字串進行編碼,否則會報TypeError: Unicode-objects must be encoded before hashing

二:下面以禪道登入介面為本次練習(禪道登入密碼是MD5加密的)

通過fiddler抓包發現,禪道登入的密碼是加密處理的:

Python程式碼如下:

import requests
import hashlib
def MD5_login(str):
    zt_pwd = hashlib.md5()
    zt_pwd.update(str.encode(encoding='utf-8'))
    return zt_pwd.hexdigest()
password = 'zhang123456' #登陸的使用者密碼=='123456'
url = 'http://10.80.136.16/zentao/user-login-L3plbnRhby9teS5odG1s.html '
data = {'account':'zhangwuxaun','password':MD5_login(password),'referer':'/zentao/'}
response = requests.post(url,data=data) # 傳送post請求
print(response.content.decode('utf-8'))

返回的結果:

相關文章