接口測試為了數(shù)據(jù)傳輸?shù)陌踩苑乐箶?shù)據(jù)泄露,做接口自動化的時候接口文檔經(jīng)常會使用md5加密。本篇文章將對“python中的md5加密”進行講解,希望感興趣的小伙伴可以堅持看下去同時歡迎提出寶貴的意見讓我們一起進步!
01:md5加密(Message-Digest Algorithm 5)
1)基本概述:用于確保信息傳輸完整一致,是計算機廣泛使用的雜湊算法之一。又稱摘要算法、哈希算法。
2)表現(xiàn)方式:通過一個函數(shù),把任意長度的數(shù)據(jù)轉(zhuǎn)換為一個長度固定的數(shù)據(jù)串(通常用一個32位的16進制字符串表示)
3)特點:
①壓縮性:任意長度的數(shù)據(jù),算出的MD5值長度都是固定的。
②容易計算:從原數(shù)據(jù)計算出MD5值很容易。
③抗修改性:對原數(shù)據(jù)進行任何改動,哪怕只修改1個字節(jié),所得到的MD5值都有很大區(qū)別。
④強抗碰撞:已知原數(shù)據(jù)和其MD5值,想找到一個具有相同MD5值的數(shù)據(jù)(即偽造數(shù)據(jù))是很困難的4)注意事項:md5算法是不可逆的
02:獲取時間
1)獲取當前時間的時間戳:time.time(1970紀元后經(jīng)過的浮點秒數(shù))
2)獲取當前日期和時間:now_time = datetime.datetime.now()
3)格式化日期:strftime()
import time,datetime
#當前時間的時間戳
modify_time=time.time()
#當前日期和時間
now_time = datetime.datetime.now()
#格式化日期
time=datetime.datetime.now().strftime('%Y-%m-%d %H:%M:%S')
03:md5加密實例化
sign計算方式:sign = Md5 (key + supplierNo + interfaceType + orderNo)
import hashlib
import datetime,random,string
# 待加密信息
key='123456'
supplierNo='axcx'
interfaceType='proposalOrder'
orderNo= ''.join(random.sample(string.ascii_letters+string.digits, 15))
# 創(chuàng)建md5對象
m=hashlib.md5()
#添加要加密的字符串,此處必須聲明encode
m.update(f'{key}{supplierNo}{interfaceType}{orderNo}'.encode('UTF-8'))
#md5加密
md5value=m.hexdigest()