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

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

本节我们要真正的实现这个加密函数:


为了便于调试,我们先给普通接口调试函数 加入对它的调用:

(注意调用位置一定要放到 替换全局变量的后面!最好是在真正发送请求代码部分之前紧贴!)

image.png

如上图,这个函数最终会返回带了加密验签字段的url和body


然后,我们要耐心的做一个接口 用来调试用!

首先来看我们写的调试用的加密表达式:


image.png注意,其中的time,我们会先检测是在url和body中存在这个字段,如果不存在,我们则用10位时间戳来表示,这个规则我们应该在一开始告知使用者,所以可以在说明文案中加入这一句:

image.png

image.png然后是具体的接口:

image.png

注意,这个验签加密表达式一共需要三个变量,

token我放在了url里,userId我放在了body中,


然后开始正式写这个函数:

我们找到这个函数:views.py中

image.png

确认下要做的事:

  1. 用project_id 拿出 加密插入位置 和 加密表达式
  2. 根据加密表达式从url和body中拿出 需要用到的参数
  3. 组装成完整加密表达式并执行,生成加密字段key/value
  4. 根据加密插入位置 放到url或body中
  5. 返回加入后的url和body


第一步代码:

image.png

第二步代码:

我们先提取一下 表达式的key 和 字段,看看是否成功:

image.png

结果如下,不用管报错先,因为还没写完

image.png

可以看到 提取的很顺利


然后我们要从给的url和body中依次拿出这些变量,注意,如果提取失败就要先检测下,是不是time的,若是则启动预置时间函数。

注意,这里我们之后可能会新增一些其他预置变量,所以大家注意下这里,以后可以根据需要扩充,不止有time一个预置变量哦~

我们现在来思考一个问题,如何从url 中提取我们要的参数?


思路1: 给url用split解析,找出所有的key=value,然后直接取出来。

思路2:直接用正则,左边界是变量= ,右边界是&或结尾。


显然,从效率上来说,思路2明显要快n倍。因为这个函数是一个很底层的函数,我们必须保证它的执行速度,所以我们先尝试用思路2 解决!

image.png

注意这个正则写法,不要写错了哦~ 正则还不会用的小伙伴建议报名我的课程哦~


看看结果:

image.png

可以看到,成功取出来了这个数据。


好,本节课就到这里了。下节课继续吧.







相关文章
|
1月前
|
数据采集 机器学习/深度学习 大数据
行为检测代码(一):超详细介绍C3D架构训练+测试步骤
这篇文章详细介绍了C3D架构在行为检测领域的应用,包括训练和测试步骤,使用UCF101数据集进行演示。
44 1
行为检测代码(一):超详细介绍C3D架构训练+测试步骤
|
10天前
|
算法
分享一些提高二叉树遍历算法效率的代码示例
这只是简单的示例代码,实际应用中可能还需要根据具体需求进行更多的优化和处理。你可以根据自己的需求对代码进行修改和扩展。
|
11天前
|
JSON Java 测试技术
SpringCloud2023实战之接口服务测试工具SpringBootTest
SpringBootTest同时集成了JUnit Jupiter、AssertJ、Hamcrest测试辅助库,使得更容易编写但愿测试代码。
42 3
|
22天前
|
算法 测试技术 开发者
在Python开发中,性能优化和代码审查至关重要。性能优化通过改进代码结构和算法提高程序运行速度,减少资源消耗
在Python开发中,性能优化和代码审查至关重要。性能优化通过改进代码结构和算法提高程序运行速度,减少资源消耗;代码审查通过检查源代码发现潜在问题,提高代码质量和团队协作效率。本文介绍了一些实用的技巧和工具,帮助开发者提升开发效率。
25 3
|
21天前
|
分布式计算 Java 开发工具
阿里云MaxCompute-XGBoost on Spark 极限梯度提升算法的分布式训练与模型持久化oss的实现与代码浅析
本文介绍了XGBoost在MaxCompute+OSS架构下模型持久化遇到的问题及其解决方案。首先简要介绍了XGBoost的特点和应用场景,随后详细描述了客户在将XGBoost on Spark任务从HDFS迁移到OSS时遇到的异常情况。通过分析异常堆栈和源代码,发现使用的`nativeBooster.saveModel`方法不支持OSS路径,而使用`write.overwrite().save`方法则能成功保存模型。最后提供了完整的Scala代码示例、Maven配置和提交命令,帮助用户顺利迁移模型存储路径。
|
29天前
|
存储 安全 Java
|
29天前
|
存储 算法 安全
SpringBoot 接口加密解密实现
【10月更文挑战第18天】
|
1月前
|
存储 缓存 算法
如何通过优化算法和代码结构来提升易语言程序的执行效率?
如何通过优化算法和代码结构来提升易语言程序的执行效率?
|
1月前
|
存储 算法 Java
Set接口及其主要实现类(如HashSet、TreeSet)如何通过特定数据结构和算法确保元素唯一性
Java Set因其“无重复”特性在集合框架中独树一帜。本文解析了Set接口及其主要实现类(如HashSet、TreeSet)如何通过特定数据结构和算法确保元素唯一性,并提供了最佳实践建议,包括选择合适的Set实现类和正确实现自定义对象的hashCode()与equals()方法。
33 4
|
1月前
|
搜索推荐
插入排序算法的讲解和代码
【10月更文挑战第12天】插入排序是一种基础的排序算法,理解和掌握它对于学习其他排序算法以及数据结构都具有重要意义。你可以通过实际操作和分析,进一步深入了解插入排序的特点和应用场景,以便在实际编程中更好地运用它。

热门文章

最新文章

下一篇
无影云桌面