python3实现MD5加密

一.背景

用MD5实现加密,模拟生成加密串,让header携带加密信息请求接口

二.代码

'''
模拟header里加密串
'''
import requests
import json
import hashlib
#加密函数实现,返回加密后的字符串
def encript(str):
    md5 = hashlib.md5()
    md5.update(str.encode('utf-8'))
    res = md5.hexdigest()
    return res
url = 'https://www.imooc.com/search/hotwords'
#模拟第一次加密(使用指定字符串)
str_1 = 'this is encript str initial value'
encrypt_1th = encript(str_1)
print('第一次加密结果,',encrypt_1th)
print('****************************************')

#模拟第二次加密(使用请求数据)
#字典
data = {
    'username' : 'xunzhao',
    'order_id' : 123456778
}
encrypt_2th = ''
for k,v in data.items():
    encrypt_2th += encript(str(v))
    print('encrypt_2th now is:',encrypt_2th)
print('第二次加密结果,',encrypt_2th)
print('****************************************')

token = encript(encrypt_1th + encrypt_2th)
print(token)
header  = {
    'Connection': 'keep-alive',
    'Content-Length': '0',
    'Pragma': 'no-cache',
    'Cache-Control': 'no-cache',
    'Accept': 'application/json, text/javascript, */*; q=0.01',
    'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/91.0.4472.114 Safari/537.36',
    'Server': 'openresty',
    'Connection': 'keep-alive',
    'token' : token
}
res = requests.post(url,verify=False,headers=header).json()
# print(res)

三.运行

终端输出如下:

PS D:\D1\code\AutoTest\python_interface_autotest\PythonInterfaceAutoTest\demo> python encrypt.py
第一次加密结果, 1b5acc777b1ea14f55a7ab30747d898f
****************************************
encrypt_2th now is: f626003a9d5ebf73ac842105bcb84f11
encrypt_2th now is: f626003a9d5ebf73ac842105bcb84f11808756e43b3aa66c62364a429e0295ee
第二次加密结果, f626003a9d5ebf73ac842105bcb84f11808756e43b3aa66c62364a429e0295ee
****************************************
45abe3c43016b82da7873ea21665bf53

fiddler抓包如下:
python3实现MD5加密_第1张图片

你可能感兴趣的:(自动化测试,python,MD5,requests,hashlib,python3)