接口测试平台代码实现148:加密算法的设计与实现

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

在我们之前的章节中成功的结束了暂时的 UI美化。

   总有同学问我,饭佬,饭哥哥!  接口测试平台什么时候能结束啊?

我会坦然的回答: 结束?结束了我还水什么?结束了你在公司部署好之后吃老本么?下季度OKR怎么办?什么APP 什么系统不是天天迭代 天天有新需求 新设计,都结束了,程序员去要饭么?

   所以结束是不可能的,但是功能会逐步完善,你什么时候想用都可以下载。这个过程中我吸取了很多同学的宝贵建议,评估后进行设计实现。期盼它会越来越好,有更多的变化出现。

   它也帮助了很多很多人,有的拿到了S绩效,有的找到了高薪OFFER,这些都是事实。 这样宝贵的教程,我不会让它随便终结的。


   所以这里开启新的一大篇章: 加密算法的设计


   所谓加密,就是把一些重要敏感数据经过加密 发送给服务器。服务器再解密得到原始数据。

   这样做的目的就是防止数据中途被人拦截或伪造。

   当然 加密的算法 就是真正的秘密,也就是只有客户端和服务器 才知道的秘密。一般的加密倒过来就是解密。

   

   不同的公司 不同的组,不同的端,一般加密的算法都是不同的,所以我们这里平台的设计是,每个项目都有自己的一套加密算法。

   比如:公司要求加密策略为:要把请求URL后加入一个叫做sign的变量,它是由 url中其他所有参数的key=value,放在一起,然后通过base64/sha1等自动加密算法加密成32位的字符串,然后这个字符串再加入时间戳,成为42位的字符串,然后再用sha1加密一遍,这个结果,就是URL最后sign的值。 完整url传给服务器后,服务器第一件事就是看看这个url的参数是不是被人伪造过,如果伪造过,黑客并不知道加密策略,所以后面的sign的值进行解密后,发现并不是传过来的url的各参数key=value,那就会判定这个请求无效,给你返回个错误参数等等。


   平台要做的就是,给每个项目的一套加密算法,让使用者自行填充,我们提供一些开源加密函数的调用,比如上面例子提到的 base64和sha1。然后让用户自己写成如下格式:

  1. 选择加密的位置:URL 还是 BODY ,一般都是URL
  2. 选择加密的数据来源:也就是都需要哪些字段来作为入参变量。比如有的固定是选url或body中的 userid和token俩个变量,其他变量不考虑。那这里我们让用户写上userid,token。然后平台自动去url和body中去找这俩个字段和值
  3. 最后让用户写上 表达式:比如:
    sign=base64(base64("#token#"+"#userid#")+"#time#")

注意其中我们会把##包裹的当做变量去找到真实的值进行替换,如果用户需求是 连key一起,那么应该告诉他,写成如下这样:

sign=base64(base64("token=#token#"+"userid=#userid#")+"#time#")

而且其中引号千万不能少,我们会忠实的替换后,进行exec的执行脚本命令,如果没有引号,那么就会出现报错,把字符串当做了变量,当然就报错找不到这个变量了~


  然后在 我们的普通接口调试,异常测试,用例执行,登录态接口调试 等地方,添加是否加密的开关,让用户自己选择即可。



   这个架构设计和我们之前的项目公共变量替换类似,照样去写一个公共的替换函数,然后兼容上面四个使用地点即可。


   前端设计上,依然是点开加密算法按钮后弹出一个弹层。让用户按照上述设计实现交互。


   好了本节课的内容到此结束,我们开启了一个新的篇章哦~

image.png

相关文章
|
12天前
|
消息中间件 监控 小程序
电竞陪玩系统架构优化设计,陪玩app如何提升系统稳定性,陪玩小程序平台的测试与监控
电竞陪玩系统架构涵盖前端(React/Vue)、后端(Spring Boot/php)、数据库(MySQL/MongoDB)、实时通信(WebSocket)及其他组件(Redis、RabbitMQ、Nginx)。通过模块化设计、微服务架构和云计算技术优化,提升系统性能与可靠性。同时,加强全面测试、实时监控及故障管理,确保系统稳定运行。
|
25天前
|
算法 Java 测试技术
使用 BenchmarkDotNet 对 .NET 代码进行性能基准测试
使用 BenchmarkDotNet 对 .NET 代码进行性能基准测试
56 13
|
19天前
|
存储 算法 安全
基于哈希表的文件共享平台 C++ 算法实现与分析
在数字化时代,文件共享平台不可或缺。本文探讨哈希表在文件共享中的应用,包括原理、优势及C++实现。哈希表通过键值对快速访问文件元数据(如文件名、大小、位置等),查找时间复杂度为O(1),显著提升查找速度和用户体验。代码示例展示了文件上传和搜索功能,实际应用中需解决哈希冲突、动态扩容和线程安全等问题,以优化性能。
|
1月前
|
机器学习/深度学习 前端开发 算法
婚恋交友系统平台 相亲交友平台系统 婚恋交友系统APP 婚恋系统源码 婚恋交友平台开发流程 婚恋交友系统架构设计 婚恋交友系统前端/后端开发 婚恋交友系统匹配推荐算法优化
婚恋交友系统平台通过线上互动帮助单身男女找到合适伴侣,提供用户注册、个人资料填写、匹配推荐、实时聊天、社区互动等功能。开发流程包括需求分析、技术选型、系统架构设计、功能实现、测试优化和上线运维。匹配推荐算法优化是核心,通过用户行为数据分析和机器学习提高匹配准确性。
100 3
|
1月前
|
存储 算法 程序员
C 语言递归算法:以简洁代码驾驭复杂逻辑
C语言递归算法简介:通过简洁的代码实现复杂的逻辑处理,递归函数自我调用解决分层问题,高效而优雅。适用于树形结构遍历、数学计算等领域。
|
2月前
|
并行计算 算法 测试技术
C语言因高效灵活被广泛应用于软件开发。本文探讨了优化C语言程序性能的策略,涵盖算法优化、代码结构优化、内存管理优化、编译器优化、数据结构优化、并行计算优化及性能测试与分析七个方面
C语言因高效灵活被广泛应用于软件开发。本文探讨了优化C语言程序性能的策略,涵盖算法优化、代码结构优化、内存管理优化、编译器优化、数据结构优化、并行计算优化及性能测试与分析七个方面,旨在通过综合策略提升程序性能,满足实际需求。
83 1
|
2月前
|
安全 应用服务中间件 网络安全
如何测试Nginx反向代理实现SSL加密访问的配置是否正确?
如何测试Nginx反向代理实现SSL加密访问的配置是否正确?
127 3
|
2月前
|
人工智能 供应链 安全
AI辅助安全测试案例某电商-供应链平台平台安全漏洞
【11月更文挑战第13天】该案例介绍了一家电商供应链平台如何利用AI技术进行全面的安全测试,包括网络、应用和数据安全层面,发现了多个潜在漏洞,并采取了有效的修复措施,提升了平台的整体安全性。
|
2月前
|
存储 缓存 算法
通过优化算法和代码结构来提升易语言程序的执行效率
通过优化算法和代码结构来提升易语言程序的执行效率
|
2月前
|
算法
分享一些提高二叉树遍历算法效率的代码示例
这只是简单的示例代码,实际应用中可能还需要根据具体需求进行更多的优化和处理。你可以根据自己的需求对代码进行修改和扩展。

热门文章

最新文章