这里写目录标题
- 一、环境准备
- 二、原理
- 三、实战练习
一、环境准备
1、对响应加密的接口。对它发起一个get请求后,得到一个加密过后的响应信息。(如果有可用的加密过的接口以及了解它的解密方法,可以跳过)
2、准备一个加密文件
加密字段
3、使用python命令在有加密文件的所在目录启动一个服务
4、访问该网站
二、原理
在得到加密过后的响应信息后对响应做解密处理:
1、如果知道使用的是哪个通用加密算法的话,可以自行解决。
2、如果不了解对应的加密算法的话,可以让研发提供加解密的lib。
3、如果既不是通用加密算法、研发也无法提供加解密的lib的话,可以让加密方提供远程解析服务,这样算法仍然是保密的。
三、实战练习
1、调用python自带的base64,直接对返回的响应做解密,即可得到解密后的响应。
import requests
import base64
import json
def test_encode():
url = 'http://127.0.0.1:9999/demo.txt'
r = requests.get(url=url)
print(r.text)
res = json.loads(base64.b64decode(r.content))
print(res)
2、封装对于不同算法的处理方法。
base_api.py
class ApiRequest:
def send(self,data:dict):
res=requests.request(data['method'],data['url'],headers=data['headers'])
if data['encoding']== "base64":
return json.loads(base64.b64decode(res.content))
elif data['encoding']== "md5":
return
# 把加密后响应值发给第三方服务i,让第三方服务解密返回
elif data['encoding'] == "第三方":
return requests.post("url",data=res.content)
测试用例.py
from unittest import TestCase
from mima import test_requests
class TestApiRequest(TestCase):
req_data = {
"method": "get",
"url": "http://127.0.0.1:8080/demo.txt",
"headers": None,
"encoding": "base64"
}
def test_send(self):
ar=test_requests.ApiRequest()
print(ar.send(self.req_data))