【LoadRunner】解决HTTP请求中传参的base64加密方法
来源:互联网 发布:苹果手机怎么清除游戏数据 编辑:程序博客网 时间:2024/06/05 04:55
base64加密
此方法是通过某大神提供的方法,并结合在某个项目中实践得出。测试背景:在开发及优化LR脚本时,发现web请求中参数的传参值涉及到了base64加密方法,于是在网上找到很多种方法,但经过一一实践验证,发现都是徒劳,最终找到了一个方法,由于当时急于解决脚本,未及时记录哪位大神的博客地址,故将自己的项目实践过程中操作编写出来,希望能帮助更多遇到此问题的朋友。
参数化的值,如:GUID={97FD2AD5-1C5E-43F6-8314-FC980CE54FBC}
void GetBase64Encode(const char* in_str,char* out_str)//加密方法
{
static unsigned char base64[]
="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/";
int curr_out_len = 0;
int i = 0;
int in_len = strlen(in_str);
unsigned char a, b, c;
out_str[0] = '\0';
if (in_len > 0)
{
while (i < in_len)
{
a = in_str[i];
b = (i + 1 >= in_len) ? 0 : in_str[i + 1];
c = (i + 2 >= in_len) ? 0 : in_str[i + 2];
if (i + 2 < in_len)
{
out_str[curr_out_len++] = (base64[(a >> 2) & 0x3F]);
out_str[curr_out_len++] = (base64[((a << 4) & 0x30) + ((b >> 4) & 0xf)]);
out_str[curr_out_len++] = (base64[((b << 2) & 0x3c) + ((c >> 6) & 0x3)]);
out_str[curr_out_len++] = (base64[c & 0x3F]);
}
else if (i + 1 < in_len)
{
out_str[curr_out_len++] = (base64[(a >> 2) & 0x3F]);
out_str[curr_out_len++] = (base64[((a << 4) & 0x30) + ((b >> 4) & 0xf)]);
out_str[curr_out_len++] = (base64[((b << 2) & 0x3c) + ((c >> 6) & 0x3)]);
out_str[curr_out_len++] = '=';
}
else
{
out_str[curr_out_len++] = (base64[(a >> 2) & 0x3F]);
out_str[curr_out_len++] = (base64[((a << 4) & 0x30) + ((b >> 4) & 0xf)]);
out_str[curr_out_len++] = '=';
out_str[curr_out_len++] = '=';
}
i += 3;
}
out_str[curr_out_len] = '\0';
}
}
Action()
{
char * take;
char * toke;
char res[512];
take=(char *)strtok(lr_eval_string("{GUID}"),"{");//格式化“{”字符串
toke=(char *)strtok(take,"}");//格式化“}”字符串,并将值存入toke中
lr_error_message("GUID: %s",toke);
GetBase64Encode(toke,res);//调用base64函数
lr_output_message(res);
return 0;
}
备注:其实此方法借鉴了《在LoadRunner中编写C函数》的其中一个方法
- 【LoadRunner】解决HTTP请求中传参的base64加密方法
- LoadRunner:关联HTTP请求
- DES+Base64 加密解密的方法
- base64加密PHP脚本的解码方法
- Java的3种Base64加密方法
- DES+Base64 加密解密的方法
- 网络:Base64加密方法的使用
- LoadRunner测试webservice接口-方法二(模拟http请求)
- LoadRunner测试webservice接口-方法二(模拟http请求)
- base64 Encoder加密方法
- base64 加密方法
- 请求的资源不支持 http 方法“GET” 解决
- http请求的方法
- http的请求方法
- Http请求的方法
- HTTP的请求方法
- http请求的方法
- http请求的方法
- 可移动的弹出层源码
- 成功需要走十步的话,三五步之间最难走
- Android 检查是否有网络
- INCORRECT RESULT SIZE: EXPECTED 1, ACTUAL 0错误以及解决方法
- 简单三步教你破解SharpPlus Sqlite Developer
- 【LoadRunner】解决HTTP请求中传参的base64加密方法
- C_C++ _________________this指针----类的理解
- Ajax使用小结
- JiaThis™“分享到”工具式按钮代码:
- 黑马程序员--------java基础--函数和数组的常用的排序方法
- android开发中ScrollView中嵌套ListView造成ListView无法独立滚动的解决方法
- 银行卡号 输入4位自动加入空格符
- .net 程序中几种常见的语法
- 初识Ildasm.exe——IL反编译的实用工具