使用Postman和JMeter进行signature签名_kjur

本文详细介绍了如何在Postman和JMeter中进行API签名的过程。首先,通过JavaScript代码展示了在Postman中如何利用MD5进行签名计算,包括获取时间戳、拼接字符串和加密。接着,解释了JMeter中如何实现相同功能,包括使用内置函数获取时间戳、获取JSON对象、拼接字符串和进行MD5加密。文章还提供了v1和v2接口的签名实现,v2接口采用了SHA256withRSA签名算法。
摘要由CSDN通过智能技术生成

var Data = Json.Data;
var secretKey = “a323f9b6-1f04-420e-adb9-b06ty67b0e63”;

字符串拼接

javascript

var str = AppKey + TimeStamp + Data + secretKey;

进行md5运算并将生成的hash序列转换为字符串

javascript

var strmd5= CryptoJS.MD5(str).toString();

修改json对象中sign并将md5对象写回body中

javascript

Json.Sign = strmd5;
pm.request.body.raw = JSON.stringify(Json); // 将修改后的JSON转换回字符串格式写回到请求体中

完整代码:

javascript

/*
vo加密规则:
appkey,timestamp,data,secret四个字段的值拼接,使用32位md5加密
*/

/*

  • 获取请求参数
    */
    var Json = JSON.parse(pm.request.body); // 将body的参数转换为json对象

/*

  • 获取所需变量
    */
    var TimeStamp = Date.parse(new Date()) / 1000 - 10; // 获取时间戳
    Json.TimeStamp = TimeStamp; // 修改JSON
    var AppKey = Json.AppKey;
    var Data = Json.Data;
    var secretKey = “a323f9b6-1f04-420e-adb9-b06ty67b0e63”;

/*

  • 拼接字符串并加密
    */
    var str = AppKey + TimeStamp + Data + secretKey;
    var strmd5= CryptoJS.MD5(str).toString(); // 调用方法进行md5运算并将生成的hash序列转换为字符串
    Json.Sign = strmd5; // 修改JSON
    pm.request.body.raw = JSON.stringify(Json); // 将修改后的JSON写回到请求体中
2.JMeter

在JMeter的时间戳可以直接使用JMeter自带函数在body中获取,当然也可以在BeanShell前置处理器中使用代码获取

/1000是因为JMeter默认生成的时间戳为13位时间戳,我们只需要10位即可。

导包(org.json为第三方jar包)

java

import org.apache.commons.codec.digest.DigestUtils;
import org.apache.jmeter.config.;
import org.json.
;

获取请求传入的body,将其转化为Json对象

java

// 获取请求
Arguments arguments = sampler.getArguments();
// 获取请求中的body内容
Argument arg = arguments.getArgument(0);
// 获取body的value,并将其转化为JSONObject对象
JSONObject dataobj = new JSONObject(arg.getValue());

获取变量并拼接

java

String TimeStamp = dataobj.optString(“TimeStamp”);
String AppKey = dataobj.optString(“AppKey”);
String Data = dataobj.optString(“Data”);
String secretKey = “a323f9b6-1f04-420e-adb9-b06ty67b0e63”;
String str = AppKey + TimeStamp + Data + secretKey;

进行md5运算

java

sign = DigestUtils.md5Hex(str);

修改json对象的sign并转换为字符串写回body中

java

dataobj.put(“Sign”, sign); // 修改Sign
arg.setValue(dataobj.toString()); // 转换为字符串并歇回request-body中

完整代码:

java

import org.apache.commons.codec.digest.DigestUtils;
import org.apache.jmeter.config.;
import org.json.
;

/*

  • 获取请求传入的body,将其转化为Json对象
    */
    // 获取请求
    Arguments arguments = sampler.getArguments();
    // 获取请求中的body内容
    Argument arg = arguments.getArgument(0);
    // 获取body的value,并将其转化为JSONObject对象
    JSONObject dataobj = new JSONObject(arg.getValue());

/*

  • 获取变量并拼接字符串
    */<
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值