接口测试加密请求发送具体案例(AES加密算法)

请求发送操作步骤

  • 构造请求
    • 需要对请求中的sign数据进行md5编码
  • 请求发送成功后将返回的数据进行base64反混淆和base64解码
  • 对base64解码后的数据进行aes解密
  • 对解密后的数据进行数据反填充
  • 对反填充后的数据转换成字符串
  • 将json格式的字符串进行反序列化
  • 获取想要的数据
import base64
import hashlib
import json
import time
from Crypto.Cipher import AES
from Crypto.Util.Padding import unpad, pad

import requests
headers={"User-Agent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/114.0.0.0 Safari/537.36",
         "Referer": "https://fanyi.youdao.com/",
         "Cookie": "OUTFOX_SEARCH_USER_ID=2062882188@10.105.253.23; OUTFOX_SEARCH_USER_ID_NCOO=702963757.8111634"
         }
url="https://dict.youdao.com/webtranslate"

# print(res.text)
t=str(int(time.time()*1000))
temp=f"client=fanyideskweb&mysticTime={t}&product=webfanyi&key=fsdsogkndfokasodnaso"
md5_obj=hashlib.md5()
md5_obj.update(temp.encode())
sign=md5_obj.hexdigest()
res=requests.post(url,data={
"i": "hello",
"from": "auto",
"to":"",
"domain": "0",
"dictResult": "true",
"keyid": "webfanyi",
"sign": sign,
"client": "fanyideskweb",
"product": "webfanyi",
"appVersion": "1.0.0",
"vendor": "web",
"pointParam": "client,mysticTime,product",
"mysticTime": t,
"keyfrom": "fanyi.web"
},headers=headers)
# print(res.text)
#base64处理
res=res.text
res=res.replace('-','+').replace('_','/')
decrypt_data=base64.b64decode(res)
# print(decrypt_data)
#解密
o='ydsecret://query/key/B*RGygVywfNBwpmBaZg*WT7SIOUP2T0C9WHMZN39j^DAdaZhAnxvGcCY6VYFwnHl'
n='ydsecret://query/iv/C@lZe2YzHtZ2CYgaXKSVfsb7Y4QWHjITPPZ0nQp87fBeJ!Iv6v^6fvi2WN@bYpJ4'
def g(v):
    md5=hashlib.md5()
    md5.update(v.encode())
    return md5.digest()
key=g(o)
iv=g(n)
aes=AES.new(key,AES.MODE_CBC,iv)
data=aes.decrypt(decrypt_data)
print("data:::",data)
# print(repr(data))
data=unpad(data,16)
# # print(data)
print(data.decode())
data=json.loads(data.decode())
# print(data)
print(data["translateResult"])
  • 9
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值