【LoadRunner】解决HTTP请求中传参的base64加密方法

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函数》的其中一个方法

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值