常用的几种加密方式

内置函数__MD5加密

参数说明:

String to calculate MD5 hash(必填):要加密的字符串

Name of variable in which to store the result (optional):存储结果的变量的名称

1、使用${__MD5(13300001111,phone)}进行MD5加密,加密结果为32位小写

2、使用${__uppercase(,)}可以将加密结果转为大写,例如:${__uppercase(${__MD5(13300001111,phone)},)}

内置函数__digest加密

参数说明:

Digest algorithm(必填):加密算法,支持:MD2、MD5、SHA-1、SHA-224、SHA-256、SHA-384、SHA-512

String to be hashed(必填):需要加密的字符串

Salt to be used for hashing (optional):用于加密的盐

Upper case result, defaults to false (optional):大写结果,默认为false

Name of variable in which to store the result (optional):存储结果的变量的名称

使用实例:${__digest(MD5,13300001111,,true,)},对字符串进行MD5加密,并将加密结果转为大写。

内置DigestUtils方法加密

在Jmeter中添加BeanShell Sampler,使用如下代码进行加密。

// md5
import org.apache.commons.codec.digest.DigestUtils; String str = "${token}" + "${appkey}" + "${data}";
String sign = DigestUtils.md5Hex(str);
log.info("加密后的标签为:" + sign); vars.put("sign",sign);
// sha256
import org.apache.commons.codec.digest.DigestUtils; String keytoSign = "需要进行加密的字符串";
String sign = DigestUtils.sha256Hex(keytoSign);
log.info("加密结果为:"+sign); vars.put("sign",sign);

使用Python脚本进行加密

在Jmeter中添加JSR223 Sampler,语言选择python,代码如下:

import hashlib

str = "13300001111"
m = hashlib.md5()
b = str.encode(encoding='utf-8')
m.update(b)
str_md5 = m.hexdigest()
str_md5 = str_md5.upper() vars.put("phone",str_md5)

需要注意的是,JSR223 Sampler只支持python2,不支持python3。

实际运用

工作场景:现有一个接口,需要调用10000笔,入参中的CELL_PHONE_HASH不能重复。这里选择

Jmeter内置的DigestUtils方法来编写脚本代码。

import org.apache.commons.codec.digest.DigestUtils;

String str = "15510${__Random(10000,20000,)}6";
String phone = DigestUtils.md5Hex(str);
vars.put("md5_phone",phone.toUpperCase()); log.info("CELL_PHONE的值为:" + str);
log.info("CELL_PHONE加密后的值为:" + phone);

在接口入参中CELL_PHONE_HASH引用该变量,保存脚本然后运行。

通过Debug Sampler可以看到手机号MD5随机生成,接口调用成功。

Jmeter MD5加密及其运用的更多相关文章

  1. Jmeter Md5加密操作之-------BeanShell PreProcessor

    背景: 有一些登录会做一些md5校验,通过jmeter的BeanShell可以解决MD5加密情况. 1.首先需要一个解码的jar包,commons-codec-1.10.jar(网上很多),下载后,放 ...

  2. jmeter md5加密请求参数

    实际的接口测试过程中,再发生http之前有可能需要对某些参数(或某几个参数的组合)进行md5加密 在jmeter中可通过两种方式来实现md5加密 beanshell实现md5加密 在org.apach ...

  3. JMeter MD5加密 默认小写 转换为大写

    出处:https://www.cnblogs.com/scholars-xian/p/11718854.html 使用内置函数加密 1)使用 ${__MD5(123,)} 进行MD5加密(32位小写) ...

  4. jmeter MD5加密

    MD5.jar已经上传到博客园的文件中 第一步  添加变量${Qpassword} 第二步 调用MD5加密 import hehe.Str2MD5;String res = new Str2MD5() ...

  5. Jmeter实现MD5加密

    Jmeter3.0以后的版本不再内置MD5加密函数,只能自己写了. 1.编码 package com.liuke.test; import java.security.MessageDigest; i ...

  6. jmeter完成md5加密的接口请求参数

    第一种方法: 这种方法比较简单,jmeter内置了一个md5的函数,可以直接使用.其中参数username是用户名,正常填写,password是密码经过md5加密 第二种方法: 需要有一定的编程技术, ...

  7. Jmeter(十九) Md5加密操作之-------BeanShell PreProcessor(转载)

    转载自 http://www.cnblogs.com/yangxia-test 背景: 有一些登录会做一些md5校验,通过jmeter的BeanShell可以解决MD5加密情况. 1.首先需要一个解码 ...

  8. Java语言编写MD5加密方法,Jmeter如何给字符串MD5加密

    package md5package; import java.io.UnsupportedEncodingException; import java.security.MessageDigest; ...

  9. jmeter用BeanShell调用jar包对HTTP请求中的参数进行MD5加密

    前提: eclipse.JDK.Jmeter 说明: 本文分为两部分进行配置说明 第一部分:编写JavaMD5加密脚本 第二部分:使用Jmeter的BeanShell进行验证 ************ ...

  10. Jmeter用BeanShell Sampler调用java写的jar包进行MD5加密

    [前言] 在工作中,有时候我们请求的参数可能需要加密,比如登录接口中的密码做了加密操作,今天我就给大家介绍一种方法:Jmeter用BeanShell Sampler调用java写的jar包进行MD5加 ...

随机推荐

  1. Django4全栈进阶之路5 Model模型

    在 Django 中,模型(Model)是用于定义数据结构的组件,其作用如下: 定义数据结构:模型用于定义数据库中的表格和表格中的字段(列),其中每个模型类对应一个表格,模型中的每个字段对应表格中的一 ...

  2. < Python全景系列-4 > 史上最全文件类型读写库大盘点!什么?还包括音频、视频?

    欢迎来到我们的系列博客<Python全景系列>!在这个系列中,我们将带领你从Python的基础知识开始,一步步深入到高级话题,帮助你掌握这门强大而灵活的编程语言! 本文系列第四篇,介绍史上 ...

  3. 啊哈C语言案例学习笔记

    Hello World #include<stdio.h> /* 技术要点: 初学者在编写程序时,经常会忘记在语句后边添加分号, */ int main() { printf(" ...

  4. 一次redis主从切换导致的数据丢失与陷入只读状态故障

    背景 最近一组业务redis数据不断增长需要扩容内存,而扩容内存则需要重启云主机,在按计划扩容升级执行主从切换时意外发生了数据丢失与master进入只读状态的故障,这里记录分享一下. 业务redis高 ...

  5. React Native项目设置路径别名

    没有设置路径别名之前代码是这样的: import { px2dp } from '../../utils/screenKits'; 路径相当冗长,看着就头疼.增加了路径别名之后,变成这样 import ...

  6. 使用numpy计算分子内坐标

    技术背景 当我们打开一个用于表示分子构象的xyz文件或者pdb文件,很容易可以理解这种基于笛卡尔坐标的空间表征方法.但是除了笛卡尔坐标表示方法之外,其实也有很多其他的方法用于粗粒化或者其他目的的表征方 ...

  7. CANoe学习笔记(二):创建第一个事件触发帧(基于LIN)

    内容: 创建一个事件触发帧: 包含几个不同无条件帧: 事件触发帧的触发: 事先准备: 创建三个文件夹,用来放不同类型文件: 工程创建 新建一个Lin工程,双击即可,然后命名为LINconf保存. 创建 ...

  8. 创建springboot工程失败解决 spring initializr Error:cannot download

    创建springboot工程失败解决 问题描述 原因分析: 网络不好,因为springBooT项目的创建时必须联网的 解决方案: 方案一: 将创建 springBoot 工程的地址更换为如下的地址 阿 ...

  9. 前端分页组件简单好用列表分页page组件

    快速实现 简单好用列表分页组件, 分页器组件,用于展示页码.请求数据等 ,包含翻页. 详情请访问uni-app插件市场地址:https://ext.dcloud.net.cn/plugin?id=12 ...

  10. PyTorch与机器学习中的随机化:减少噪声和随机性

    目录 2.1 基本概念解释 2.2 技术原理介绍 2.3 相关技术比较 3. 实现步骤与流程 3.1 准备工作:环境配置与依赖安装 3.2 核心模块实现 3.3 集成与测试 4. 应用示例与代码实现讲 ...