接口测试平台代码实现153:加密算法更新

本文涉及的产品
密钥管理服务KMS,1000个密钥,100个凭据,1个月
简介: 接口测试平台代码实现153:加密算法更新

继续更新接口测试平台:

  1. 先来改一系列的小bug:(admin后台数据的展示None时报错)


这个bug是什么意思呢?就是当我们删除一个数据时,结果报错说,返回的必须是str 而非None。这个问题的原因在于我们的models.py中的 返回展示部分:

image.png

返回的self.name, 而创建的时候,默认又是空的None。所以这里会报错。所以为了以防同类情况再次出现。我们先把所有的这种全加上str() 包裹。就算是None,也会显示 字符串的"None" ,而不会再报错了。

image.png


好,然后开始既进入正文:【加密算法的继续更新】

首先,先让我们回忆一下当前进度。


我们说要做一个函数,来接受url,body,project_id, 进行加密计算后 把加好的url和body 返回回去。


当前函数如下:

image.png

注意,我们已经对函数进行步骤划分,且完成到了从url中提取需要处理的字段名。

image.png

打印的效果如下,算法目前可识别出来最终的加密字段名为sign,需要有三个变量,token,userid,time, 其中token 我们成功找到值123abc,userid 和 time暂时为空。


让我们开始从body中取:

body一共我们支持俩种类型,也就是form-data/x-www-form-urlencoded的 二维列表字符串,还有raw-json的字典字符串。


不论哪种我们都直接用正则取即可,又快又方便。

不过这里我们要注意,正则的值有可能是被""包裹起来,也有可能非包裹,比如某数字。所以我们最好是直接全拿,然后忠实替换最好。

image.png


如图,分别对俩种格式进行了正则提取。结果如下:

image.png

注意,在userid作为i的循环时,成功拿到了值。


然后我们做个简单的判断,意思是url和body中 只要任意一次提取成功便不再继续提取 浪费时间。然后顺便直接给替换到 我们的加密表达式中,最后打印一下表达式:

image.png

注意这里,运用了 str(eval( 的方式 进行解析和拼接,以便数字、字符串、列表等格式均可以正确插入。

image.png

可以看到,已经成功拼接到表达式中了。


然后还有个#time#没有处理好,也就是当所有地方都不存在这个需要解析的字段时,我们直接运用我们的预置处理办法。

image.png

image.png



注意,这个最后的判断我们是可以写很多预置字段的。


结果如下:

image.png


可以看到,加密字段已经如我们所期望的那样,成功替换到了加密表达式中。所以我们接下来,就是对这个加密字段求值。


首先导入base64的包 或者 md5等等之后用到的:

image.png

注意,我之前写的加密表达式是伪代码,真正的base64并不是这么简单的。

所以我们现在来把之前的假表达式,换成真的可以求值的一个表达式:


如图:

image.png


base64内部的各种方法,里面的参数必须是encode() utf-8的,且最终的结果需要再次decode() 才能使用。 括号里若是utf-8 则可以省略不写:


sign=base64.b32encode(("token=#token#"+"userid=#userid#"+"#time#").encode()).decode()

复制到平台保存好。代码改成如下:

image.png

打印了最终加密结果:

image.png


然后我们最后一步,就是插入到url/或body中。

首先是url:


进行了各种判断:结果如下:

image.png

可以看到是成功了


然后是body,body这个比较复杂,需要判断类型,并且在之后还要恢复字符串格式。


image.png


好了,到此为最后一步了,然后我们打印下各种情况的body看看。

image.png

发现都可以成功塞进去。


本节内容到此结束。下一节课,我们讲在 普通调试、登录态节课、用例模块 三处进行调用该功能。且对一些异常情况做好处理工作。


欢迎小伙伴们继续关注!!!


相关文章
|
1月前
|
数据采集 机器学习/深度学习 大数据
行为检测代码(一):超详细介绍C3D架构训练+测试步骤
这篇文章详细介绍了C3D架构在行为检测领域的应用,包括训练和测试步骤,使用UCF101数据集进行演示。
43 1
行为检测代码(一):超详细介绍C3D架构训练+测试步骤
|
1月前
|
机器学习/深度学习 人工智能 监控
提升软件质量的关键路径:高效测试策略与实践在软件开发的宇宙中,每一行代码都如同星辰般璀璨,而将这些星辰编织成星系的过程,则依赖于严谨而高效的测试策略。本文将引领读者探索软件测试的奥秘,揭示如何通过精心设计的测试方案,不仅提升软件的性能与稳定性,还能加速产品上市的步伐,最终实现质量与效率的双重飞跃。
在软件工程的浩瀚星海中,测试不仅是发现缺陷的放大镜,更是保障软件质量的坚固防线。本文旨在探讨一种高效且创新的软件测试策略框架,它融合了传统方法的精髓与现代技术的突破,旨在为软件开发团队提供一套系统化、可执行性强的测试指引。我们将从测试规划的起点出发,沿着测试设计、执行、反馈再到持续优化的轨迹,逐步展开论述。每一步都强调实用性与前瞻性相结合,确保测试活动能够紧跟软件开发的步伐,及时适应变化,有效应对各种挑战。
|
8天前
|
JSON Java 测试技术
SpringCloud2023实战之接口服务测试工具SpringBootTest
SpringBootTest同时集成了JUnit Jupiter、AssertJ、Hamcrest测试辅助库,使得更容易编写但愿测试代码。
37 3
|
12天前
|
监控 安全 测试技术
构建高效的精准测试平台:设计与实现指南
在软件开发过程中,精准测试是确保产品质量和性能的关键环节。一个精准的测试平台能够自动化测试流程,提高测试效率,缩短测试周期,并提供准确的测试结果。本文将分享如何设计和实现一个精准测试平台,从需求分析到技术选型,再到具体的实现步骤。
50 1
|
26天前
|
存储 安全 Java
|
26天前
|
存储 算法 安全
SpringBoot 接口加密解密实现
【10月更文挑战第18天】
|
1月前
|
存储 算法 Java
Set接口及其主要实现类(如HashSet、TreeSet)如何通过特定数据结构和算法确保元素唯一性
Java Set因其“无重复”特性在集合框架中独树一帜。本文解析了Set接口及其主要实现类(如HashSet、TreeSet)如何通过特定数据结构和算法确保元素唯一性,并提供了最佳实践建议,包括选择合适的Set实现类和正确实现自定义对象的hashCode()与equals()方法。
32 4
|
30天前
|
人工智能 监控 测试技术
云应用开发平台测试
云应用开发平台测试
46 2
|
12天前
|
监控 安全 测试技术
构建高效精准测试平台:设计与实现全攻略
在软件开发过程中,精准测试是确保产品质量的关键环节。一个高效、精准的测试平台能够自动化测试流程,提高测试覆盖率,缩短测试周期。本文将分享如何设计和实现一个精准测试平台,从需求分析到技术选型,再到具体的实现步骤。
35 0
|
1月前
|
JSON 算法 数据可视化
测试专项笔记(一): 通过算法能力接口返回的检测结果完成相关指标的计算(目标检测)
这篇文章是关于如何通过算法接口返回的目标检测结果来计算性能指标的笔记。它涵盖了任务描述、指标分析(包括TP、FP、FN、TN、精准率和召回率),接口处理,数据集处理,以及如何使用实用工具进行文件操作和数据可视化。文章还提供了一些Python代码示例,用于处理图像文件、转换数据格式以及计算目标检测的性能指标。
59 0
测试专项笔记(一): 通过算法能力接口返回的检测结果完成相关指标的计算(目标检测)