API接口加密,解决自动化中登录问题
一、加密方式
- AES:对称加密,快
- RAS:非对称加密,慢
- AES+RAS:安全+高效
加密过程:字符串=====》字节流====》加密的字节流(算法),解密有可能出现乱码,所以不能直接转成字符串,一般采用base64,base64的结果一定是ASCII范围内的字节,所以一定可以转成字符串
字符串转成字节流:encode
字节流转成字符串:decode
二、接口加密
请求:加密,响应:解密
- 加密API请求错误
- 格式不正确
- 加密格式不正确
- 请求参数值不正确
三、第三方库实现加密
- 安装pycryptodome:pip3 install pycryptodome
四、加密方式
以下加密信息,测试端和接口端必须一致
- 加密算法
- 密钥
- 加密模式
- IV变量
五、加密代码
加密算法
import base64
import json
from Crypto.Cipher import AES
import base64#AEX加密
key = b"sanmu's aes_key!" #16位字节作为密钥
mode=AES.MODE_EAX #EAX加密模式
IV=b"0"*16class Encoder:@staticmethoddef encrypt(data:dict)->str:"""AES加密1.接收字典2.字典转字符串3.字符串转字节4.字节进行加密5.对加密结果进行bas646.编码结果转字符串:param data::return:"""encoder = AES.new(key, AES.MODE_EAX,nonce=IV)content_str=json.dumps(data)content_byte=content_str.encode('utf-8')content_en = encoder.encrypt_and_digest(content_byte)return base64.b64encode(content_en).decode("utf-8")@staticmethoddef decrypt(data:str)->dict:"""AES解密1.接收字符串2.字符串转字节3.base64解码4.AES解密5.解密结果转字符串6.字符串转字典:param data::return:"""encoder = AES.new(key, AES.MODE_EAX,nonce=IV)content_byte=base64.b64decode(data)content_de=encoder.decrypt(content_byte)content_str=content_de.decode("utf-8")content=json.loads(content_str)return contenttest_api.py
import requests
from libs import Encoderlogin_info={'username':'sanmu','password':'123456'
}data={"content":Encoder.encrypt(login_info), #内容是AES加密的,是字符串"cipher":"AES"
}print(data)
'''
url='https://api.tttt.one/rest-v1/encrypt/with_json'
resp=requests.post(url,json=data)
print(resp.json())
最后感谢每一个认真阅读我文章的人,礼尚往来总是要有的,虽然不是什么很值钱的东西,如果你用得到的话可以直接拿走:
这些资料,对于【软件测试】的朋友来说应该是最全面最完整的备战仓库,这个仓库也陪伴上万个测试工程师们走过最艰难的路程,希望也能帮助到你!

相关文章:
API接口加密,解决自动化中登录问题
一、加密方式 AES:对称加密,快RAS:非对称加密,慢AESRAS:安全高效 加密过程:字符串》字节流》加密的字节流(算法),解密有可能出现乱码,所以不能直接转成字符…...
COCOS2DX3.17.2 Android升级targetSDK30问题解决方案
一、luajit不兼容问题 不兼容版本:【2.1.0-bate2、2.1.0-bate3都存在异常】 出问题系统:Android11;Android10的系统部分机型有问题,部分机型正常 异常点1:c调用lua接口,pushObjiect的时候crash 异常点2…...
HarmonyOS鸿蒙原生应用开发设计- 隐私声明
HarmonyOS设计文档中,为大家提供了独特的隐私声明,开发者可以根据需要直接引用。 开发者直接使用官方提供的隐私声明内容,既可以符合HarmonyOS原生应用的开发上架运营规范,又可以防止使用别人的内容产生的侵权意外情况等ÿ…...
【面试精选】00后卷王带你三天刷完软件测试面试八股文
前言 本人普通本科计算机专业,做测试也有3年的时间了,讲下我的经历,我刚毕业就进了一个小自研薪资还不错,有10.5k(个人觉得我很优秀),在里面呆了两年,积累了一些的经验和技能&#…...
k-means算法c++实现
计算数据集中的元素与各个簇的中心的距离,将它赋给最近的簇,然后重新计算每个簇的平均值,再将元素按离平均值点最近的原则重新分配直到没有出现重新分配 该算法要事先给出k的值,即划分为几个簇。 vector<int> datoclu(dat…...
oracle查询哪些用户下有表
oracle查询哪些用户下有表,排除系统用户。 在实际业务中 oracle数据库中创建了很多的用户 但实际都是无表的,利用SQL语句将这些有表的用户查询出来 并显示用户名、表名、创建表的时间等信息。 select * from dba_objects where object_type = TABLE and owner not in ( AN…...
机器人连杆惯量参数辨识(估计)
杆的转动惯量的计算公式是Imr^2。在经典力学中,转动惯量(又称质量惯性矩,简称惯矩)通常以I 或J表示,SI 单位为 kgm。对于一个质点,I mr,其中 m 是其质量,r 是质点和转轴的垂直距离。…...
一座 “数智桥梁”,华为助力“天堑变通途”
《水调歌头游泳》中的一句话,“一桥飞架南北,天堑变通途”,广为人们所熟知,其中展现出的,是中国人对美好出行的无限向往。 天堑变通途从来不易。 中国是当今世界上交通运输最繁忙、最快捷的国家之一,交通行…...
C#知识总结 基础篇(上)
本篇内容参考C#图解教程 本篇内容偏向基础,适合0基础的朋友快速上手,也适合有一定C语言(或其他语言如C,java)基础的人快速上手C#。同时适合unity引擎的初学者,更加详细的了解C#语言。 本文内容基本涵盖C#基础内容&am…...
照片编辑软件Affinity Photo 2 for Mac v2.1.1中文激活版 2024年最新中文版下载
照片编辑软件Affinity Photo 2 for Mac v2.1.1中文激活版是一款功能强大的专业级图像编辑软件,由Serif公司开发。它提供了广泛的工具和功能,适用于摄影师、设计师和艺术家。 照片编辑软件Affinity Photo 2 for Mac v2.1.1中文激活版软件介绍 TIFF&#…...
TPAMI 2023 | Temporal Perceiver:通用时序边界检测方法
本文介绍一下今年我们组被T-PAMI 2023收录的时序边界检测工作 Temporal Perceiver: A General Architecture for Arbitrary Boundary Detection。 论文名称: Temporal Perceiver: A General Architecture for Arbitrary Boundary Detection 论文链接&…...
Unity-UV展开工具
using System.Collections; using System.Collections.Generic; using UnityEngine; using UnityEditor;public class unfold : EditorWindow {[MenuItem("Gq_Tools/展开")]public static void ShowWin(){EditorWindow.CreateInstance<unfold>().Show();}priva…...
springboot actuator jvm监控丢失
1、背景 系统接入了监控prometheus和grafana,某天grafana突然发现只有几台机器可以看到指标。 随便点击一个地址http://192.168.0.76:8681/lms/actuator/prometheus访问指标,发现JVM相关指标全部丢失 2、解决方法 从网上查找相关资料,逐一…...
UDP服务端和客户端通信代码开发流程
一、UDP通信 TCP:传输控制协议,面向连接的,稳定的,可靠的,安全的数据集流传递 稳定和可靠:丢包重传 数据有序:序号和确认序号 流量控制:稳定窗口 UDP:用户数据报协议 面向无连接的,不稳定的,不可靠,不安…...
数据库实验:SQL的数据定义与单表查询
目录 实验目的实验内容实验要求实验过程实验步骤实例代码结果示意 数据库的实验,对关系型数据库MySQL进行一些实际的操作 实验目的 (1) 掌握DBMS的数据定义功能 (2) 掌握SQL语言的数据定义语句 (3) 掌握RDBMS的数据单表查询功能 (4) 掌握SQL语言的数据单表查询语句…...
P3398 仓鼠找 sugar
Portal. LCA。 询问树上两条路径是否有交点。 画图发现无非两种情况: 发现一条路径的起点和终点的 LCA 经过另一条路径,是两路径相交的充要条件。 考虑如何判断这个 LCA 在不在路径上。若 d ( s , LCA ) d ( LCA , t ) d ( s , t ) d(s,\text{LCA…...
C# 发送邮件
1.安装 NuGet 包 2.代码如下 SendMailUtil using MimeKit; using Srm.CMER.Application.Contracts.CmerInfo; namespace Srm.Mail { public class SendMailUtil { public async static Task<string> SendEmail(SendEmialDto sendEmialDto,List<strin…...
Zeal下载文档慢的问题
1. 安装Zeal 官方下载网站: https://zealdocs.org/ 2. 安装文档(在线安装方式)(下载速度非常慢) Tools - Docsets Available中下载安装对应的文档 3. 安装文档(离线安装方式) ①下载文档…...
HR模块开发(1):简单的开发流程和注意事项
HR模块开发 一、模块概述 人力资源管理解决方案关注3个领域:每位雇员都发展和维护着‘公司内’和‘公司外’的种种‘关系’。运用科技,强化这些关系,可以提高忠诚度和生产力,公司整体得到商业价值。 员工关系管理员工职业生命周期管理员工事务处理管理HR模块的基本知识和构…...
创建Vue实例
我们已经知道了Vue框架可以 基于数据帮助我们渲染出用户界面,那应该怎么做呢? 核心步骤(4步): 准备容器 引包(官网) — 开发版本/生产版本 创建Vue实例 new Vue() 指定配置项,渲…...
2026年AI数字人产量有上限吗?批量制作全揭秘
2026年AI数字人产量有上限吗?批量制作全揭秘 【导语】 用AI数字人做视频,一天到底能产多少条?是24小时不停机吗?批量制作有没有数量限制?这些问题,今天一次说清楚。01 AI数字人的产量到底有没有上限&#x…...
从KITTI的pkl文件到模型输入:OpenPCDet数据流水线内部运作全揭秘
从KITTI的pkl文件到模型输入:OpenPCDet数据流水线内部运作全揭秘 在3D目标检测领域,KITTI数据集作为行业标杆,其数据处理流程的复杂性往往成为算法落地的第一道门槛。OpenPCDet框架通过精心设计的预处理系统,将原始传感器数据转化…...
几十人团队跨部门共享大文件难?企业网盘选型必须知道的 3 个标准(含 5 款网盘实测)
企业 IT 和财务在做工具选型时,常常把网盘的“投资回报率(ROI)”简单等同于“多少钱买多少 GB 的存储空间”。但对于一个几十人的活跃团队来说,每天跨部门大文件传输引发的网络拥堵、向外部客户分享资料时的漫长等待与沟通摩擦&am…...
DDR2 / DDR3 / DDR4 颗粒信号差异对照表
DDR2 与 DDR3 颗粒引脚信号一一对应对照表信号组别DDR2 信号名DDR3 对应信号名功能一致差异说明差分时钟CK、CK#CK、CK#✅ 完全一致功能、时序定义相同,仅电平不同时钟使能CKECKE✅ 完全一致高低电平逻辑、工作模式控制相同硬件复位无RESET#❌ DDR2 无DDR3 新增&…...
别再乱用sudo了!麒麟KYLINOS下用ACL实现安全的精细化权限控制
麒麟KYLINOS权限管理革命:用ACL替代sudo的精细化控制实战 在麒麟KYLINOS操作系统中,许多管理员习惯性地使用sudo或简单粗暴的chmod 777来解决权限问题,这种"一刀切"的做法实际上为系统安全埋下了重大隐患。想象一下这样的场景&…...
Godot-MCP完整指南:如何用AI助手3倍提升游戏开发效率
Godot-MCP完整指南:如何用AI助手3倍提升游戏开发效率 【免费下载链接】Godot-MCP An MCP for Godot that lets you create and edit games in the Godot game engine with tools like Claude 项目地址: https://gitcode.com/gh_mirrors/god/Godot-MCP Godot-…...
电磁仿真进阶--CST空心电感建模与实测验证全流程
1. 空心电感建模与仿真的工程价值 空心电感作为高频电路中的核心无源器件,其性能直接影响射频前端、滤波电路等关键模块的工作表现。与传统带磁芯的电感不同,空心电感避免了磁饱和问题,但同时也面临着建模复杂度高、高频特性难以准确预测的挑…...
HPM6750 BGA196封装XPI0 CA端口缺失的CB端口启动解决方案
1. 项目概述与核心挑战最近在做一个对PCB尺寸有严格限制的嵌入式项目,主控芯片选用了先楫半导体的高性能MCU HPM6750。为了压缩板子面积,我放弃了引脚更丰富的BGA289封装(HPM6750IVM2),转而选择了更紧凑的BGA196封装&a…...
告别本地调试:手把手教你将Flink Java应用打包成JAR并提交到YARN集群
从IDE到YARN集群:Flink Java应用全流程部署实战指南 当你在IntelliJ IDEA中完成了Flink流处理程序的调试,看着本地控制台输出的结果一切正常时,接下来的挑战才刚刚开始——如何将这个精心编写的程序部署到真实的分布式环境中运行?…...
FPGA硬解 vs 软件模拟:实测MiSTer在延迟和画质上到底强在哪?
FPGA硬解 vs 软件模拟:实测MiSTer在延迟和画质上到底强在哪? 在复古游戏的世界里,每一帧的延迟都可能决定《拳皇97》中一个连招的成败,每一像素的偏差都会影响《魂斗罗》子弹轨迹的判断。当硬核玩家们争论FPGA方案与软件模拟孰优孰…...

