当前位置: 首页 > news >正文

从0开始python学习-51.pytest之接口加密封装

目录

MD5加密

base64加密

rsa加密


MD5加密

1. 封装加密方法

def md5_encode(self,data):data = str(data).encode("utf-8")md5_data = hashlib.md5(data).hexdigest()return md5_data

2. 写入需要使用加密的接口yaml用例

-request:method: posturl: http://192.168.0.1/md5logindata:username: ${md5_encode(admin)} # 这里直接调用MD5的方法即可password: ${md5_encode(123)}

base64加密

1. 封装加密方法

def base64_encode(self,data):data = str(data).encode("utf-8")base64_data = base64.b64encode(data).decode("utf-8")return base64_data

2. 写入需要使用加密的接口yaml用例

-request:method: posturl: http://192.168.0.1/base64logindata:username: ${base64_encode(admin)} password: ${base64_encode(123)}

rsa加密

需要先进行下载  pip install rsa

1. 生成rsa使用的公钥和私钥

def create_key(self):# 生成1024位的公钥和私钥-RSA密钥至少为500位,密钥长度随着保密级别提高public_key,private_key = rsa.newkeys(1024)# 将生成的公钥和密码写入文件with open("./public_key.pem","w+") as f :f.write(public_key.save_pkcs1().decode())with open("./private_key.pem","w+") as f :f.write(private_key.save_pkcs1().decode())

2. 封装加密方法

这里读取的时候注意相对路径的问题

def rsa_encode(self,data):# 读取公钥with open("./public_key.pem") as f:public_key = rsa.PublicKey.load_pkcs1(f.read().encode())# 把data转为utf-8格式data = str(data).encode("utf-8")# 把字符串加密成byte类型byte_data = rsa.encrypt(data,public_key)# 把字节转为字符串base64_data = base64.b64encode(byte_data).decode("utf-8")

3. 写入需要使用加密的接口yaml用例

-request:method: posturl: http://192.168.0.1/rsalogindata:username: ${rsa_encode(admin)} password: ${rsa_encode(123)}

http://www.lryc.cn/news/286974.html

相关文章:

  • c++的命名空间
  • 阿富汗塔利班兴起时的比赛代码3475:练85.3 删数问题(Noip1994)
  • 大数据平台红蓝对抗 - 磨利刃,淬精兵!
  • 【2024-01-22】某极验3流程分析-滑块验证码
  • Laya2.13.3接入FGUI
  • 短视频账号矩阵系统+无人直播系统源码技术开发
  • C语言或C++通过IShellLinkA创建或解析lnk快捷方式(使用char字符数组)
  • Spring源码学习-Spring流程概述(一)
  • Figma怎么设置中文,Figma有中文版吗?
  • 智慧文旅一机游:科技与文化的完美结合,引领智慧文旅新潮流,智慧旅游未来已来
  • 多维时序 | Matlab实现CNN-LSTM-Mutilhead-Attention卷积长短期记忆神经网络融合多头注意力机制多变量时间序列预测
  • 软件工程实验报告(完整)
  • Java零基础学习20:集合的练习
  • 【latex】在Overleaf的IEEE会议模板中,快速插入参考文献
  • java反射之Field用法(获取对象的字段名和属性值)
  • Java Web(三)--CSS
  • 天津大数据培训班推荐,数据分析过程的常见错误
  • 【笔记】Helm-3 主题-17 弃用的Kubernetes API
  • 麒麟系统—— openKylin 安装 java
  • HTML学习笔记——07:其他嵌入技术
  • 【UE】在控件蓝图中通过时间轴控制材质参数变化
  • linux C语言socket函数send
  • Django(八)
  • 上海计算机学会12月月赛 丙组题解
  • nextjs中beforePopState使用
  • 【并发编程】活锁
  • CSMM和CMMI之间有什么区别?
  • 企业面临的典型网络安全风险及其防范策略
  • JavaScript进阶:WebAPIs重点知识整理1
  • 【Nginx】使用自生成证书配置nginx代理https