首页 > 其他分享 >浅谈断言之MD5Hex断言

浅谈断言之MD5Hex断言

时间:2024-07-26 09:54:06浏览次数:8  
标签:加密 断言 MD5Hex 响应 html 浅谈 MD5

浅谈断言之MD5Hex断言

“MD5Hex断言”是一种特殊类型的断言,主要用于验证返回数据的完整性和一致性。本文将详细介绍MD5Hex断言的用途、配置方法及应用场景。

MD5Hex断言概述

MD5Hex断言基于MD5(Message-Digest Algorithm 5)算法,这是一种广泛使用的散列函数,可以产生一个128位(16字节)的散列值,通常表示为32位的十六进制数。此算法虽不再被视为安全的加密手段,但在验证数据完整性方面依然有效。MD5Hex断言通过计算响应数据的MD5摘要并与预设的MD5值进行对比,以此判断响应内容是否与预期一致。

应用场景

MD5Hex断言特别适合以下场景:

  1. 内容一致性验证:当响应数据较大或内容可能变化但其MD5摘要应保持不变时。
  2. 安全性较低的验证需求:虽然不推荐用于安全性高的场景,但在一些非敏感数据验证中仍可使用。
  3. 快速比较大量数据:通过比较MD5摘要而非整个数据内容,可以高效地检查数据是否被篡改。

配置步骤

要在JMeter中使用MD5Hex断言,请遵循以下步骤:

  1. 添加断言:首先,在JMeter测试计划中的“Sampler”(采样器)之后,右击选择“Add” > “Assertions” > “MD5Hex Assertion”。
  2. 配置断言:
    ○ MD5HEX: 在此字段输入期望的MD5摘要值(32位十六进制字符串)。这是你希望服务器响应数据计算出的MD5值。

应用实例

首先我们使用SpringBoot框架编写一段测试代码接口

//html
@GetMapping(value = "/html",produces = "application/html")
    public String Returnhtml() {
        return "<!DOCTYPE html>\n" +
                "<html lang=\"en\">\n" +
                "<head>\n" +
                "    <meta charset=\"UTF-8\">\n" +
                "    <title>简单表单提交界面</title>\n" +
                "</head>\n" +
                "<body>\n" +
                "    <h1>欢迎来到我们的简易表单</h1>\n" +
                "    <form action=\"/submit_form\" method=\"post\">\n" +
                "        <label for=\"name\">姓名:</label>\n" +
                "        <input type=\"text\" id=\"name\" name=\"name\"><br><br>\n" +
                "        <label for=\"email\">电子邮件:</label>\n" +
                "        <input type=\"email\" id=\"email\" name=\"email\"><br><br>\n" +
                "        <label for=\"message\">消息:</label>\n" +
                "        <textarea id=\"message\" name=\"message\"></textarea><br><br>\n" +
                "        <input type=\"submit\" value=\"提交\">\n" +
                "    </form>\n" +
                "</body>\n" +
                "</html>";
    }

我们编写如下脚本:
在这里插入图片描述
线程组:保持默认
HTTP信息头管理器:名称设置为accept,值为application/html
HTTP请求:协议设置为http,服务器名称或IP设置为127.0.0.1,端口设置为8091,方法设置为GET,路径设置为/html,内容编码为utf-8
MD5Hex断言:要断言的MD5HEX内容输入5959696982e4686953f0d9bdf4b579fd,为什么是这个数据呢,我们可以通过上述接口内容知道返回的结果是HTML的,结果如下

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>简单表单提交界面</title>
</head>
<body>
    <h1>欢迎来到我们的简易表单</h1>
    <form action="/submit_form" method="post">
        <label for="name">姓名:</label>
        <input type="text" id="name" name="name"><br><br>
        <label for="email">电子邮件:</label>
        <input type="email" id="email" name="email"><br><br>
        <label for="message">消息:</label>
        <textarea id="message" name="message"></textarea><br><br>
        <input type="submit" value="提交">
    </form>
</body>
</html>

我们将上述内容复制到一个在线的MD5加密工具中进行加密,例如https://www.sojson.com/encrypt_md5.html加密以后的结果可以看到32位加密结果如下
在这里插入图片描述

所以将获得的加密结果放到要断言的MD5HEX内容进行输入
运行结果,查看结果树中是否成功,http请求断言成功,不显示断言的结果,
在这里插入图片描述

注意事项

● 安全性警告:尽管MD5Hex断言可用于数据完整性校验,但鉴于MD5算法的碰撞攻击风险,避免在安全性要求高的场景中使用。
● 响应内容处理:确保MD5Hex断言应用于未经过修改的原始响应数据。如果响应中包含动态内容(如时间戳),需先去除这些动态部分再计算MD5。
● 性能考量:计算MD5摘要会消耗一定资源,对于高并发测试,频繁使用MD5Hex断言可能影响测试效率。

结论

MD5Hex断言是JMeter中一个便捷的工具,用于验证响应数据的完整性,尤其适合那些需要高效比较大块数据的场景。尽管存在安全限制,合理利用MD5Hex断言可以在特定测试需求下提高测试的准确性和效率。理解其适用范围和限制,能够帮助测试工程师更有效地设计和执行测试计划。

标签:加密,断言,MD5Hex,响应,html,浅谈,MD5
From: https://blog.csdn.net/u012151594/article/details/140605122

相关文章

  • 浅谈平衡树
    平衡树,是一种数据结构,可以实现一类元素在线性结构中动态变化,基于二叉搜索树,满足二叉搜索树的所有性质。二叉搜索树(BST)二叉搜索树是一种二叉树形结构,它满足以下性质:空树是二叉搜索树。若二叉搜索树的左子树不为空,则其左子树上所有点的附加权值均小于其根节点的值。若二......
  • 如何调试:断言错误:blk ref_locs 中的间隙
    我不知道如何解决这个似乎是随机发生的错误。我无法分享源代码,但如果有任何关于我可以采取哪些措施来防止此错误的想法,我将不胜感激。现在,我认为作为一种解决方法,我将捕获错误并重试...不确定这是否有效。就像上下文一样,我有一个生产者线程(显示问题的线程)填充数据帧以供消费者读......
  • 浅谈5G频段的选择问题
    在5G频段选择的问题上,我们需要考虑多个方面,包括频段特性、网络需求、设备支持以及运营商的部署情况等。以下是对5G频段选择问题的详细分析:一、频段特性    低频段(如700MHz,即N28/N28a):        优势:通信距离远,穿透能力强,适合广覆盖和深度覆盖,尤其适合人口密集的城市区......
  • cs04 浅谈编译和链接
    C/C++语言中编译和链接通常都是自动完成的,win上VS全部包圆了,什么都不用操心,linux上使用cmake编写CMakeLists.txt也可以使用短短几行代码构建一个工程。那么编译和链接到底在我们看不到的地方做了什么呢?深入理解计算机系统中有一句话大多数编译系统提供了编译器驱动程序(com......
  • 做ui自动化测试需要对页面所有元素进行可见作断言吗?还是说只需要断言一个元素存在
    嗨,我是兰若姐姐,今天和大家讨论下,页面元素的断言,应该断言一个还是多个,还是所有?其实,在UI自动化测试中,是否需要对页面所有元素进行可见性断言,还是只需要断言一个关键元素存在,取决于测试的具体目标和上下文。以下是一些常见的实践和建议:1.关键元素断言在大多数情况下,断言一......
  • 浅谈Mike 3D中制作垂向水温分层边界
    前言:给大家更新一篇全新模块的讲解吧,MIKE3D中难点在于制作一种分层DFS2的边界,这种边界必须用实测的数据作为支撑,本次讲解以水温分层为例。step1:打开GridSeries中BlankGird,新建2dgridstep2:进入参数设置界面,坐标与模型设置一致,坐标原点可以设置成边界起点坐标(左手......
  • 浅谈Open.Json.pickle.Os
    一、Open函数使用open函数是Python中用于打开文件的内置函数,它返回一个文件对象,该文件对象提供了对文件进行读写操作的方法。使用 open 函数时,通常需要指定至少两个参数:文件名(file)和模式(mode)。模式决定了文件是以只读、只写、追加、读写等哪种方式被打开的。file_object......
  • postman断言使用
    Postman使用1)基础篇1.常规断言-断言testsTests为执行断言后的测试结果tests["Bodymatchesstring"]=responseBody.has("2018-05-15");测试返回的状态码tests["Statuscodeis200"]=responseCode.code===200;测试返回的状态信息测试响应时间是否低于200ms检查响应body中等......
  • 浅谈:HTTP 和 HTTPS 通信原理
    1.HTTP基本概念1.1HTTP是什么? HTTP (超文本传输协议)协议被用于在Web浏览器和网站服务器之间传递信息, HTTP 协议以明文方式发送内容,不提供任何方式的数据加密,如果攻击者截取了Web浏览器和网站服务器之间的传输报文,就可以直接读懂其中的信息,因此, HTTP 协议不适合传......
  • 连载|浅谈红队中的权限维持(三)-Window主机后门
    前言本文来源无问社区,更多实战内容,渗透思路尽在无问社区http://www.wwlib.cn/index.php/artread/artid/11101.html续接上文浅谈红队中的打点(连载第二篇)不过因为一些权限维持的方法需要管理员权限才行,所有这时又需要先提权才能做权限维持;有时如果想做域控权限维持又需要先......