loadrunner 录制登录密码转 md5
在录制用户注册登录脚本时,常常会遇到Web 程序对用户密码进行 MD5 加密,例如下面一段脚本:
web_submit_data("MagaRegister.aspx_2",
"Action=http://www.feidubook.com/MagaRegister.aspx",
"Method=POST",
"TargetFrame=",
"RecContentType=text/html",
"Referer=http://www.feidubook.com/MagaRegister.aspx",
"Snapshot=t13.inf",
"Mode=HTML",
ITEMDATA,
"Name=__EVENTTARGET", "Value=", ENDITEM,
"Name=__EVENTARGUMENT", "Value=", ENDITEM,
"Name=__VIEWSTATE", "Value={Siebel_Analytic_ViewState4}", ENDITEM,
"Name=topNaviId$txtUserName", "Value=", ENDITEM,
"Name=topNaviId$txtUserPwd", "Value=", ENDITEM,
"Name=topNaviId$ValidCodeId", "Value=", ENDITEM,
"Name=searchType", "Value=qikan", ENDITEM,
"Name=searchdomain", "Value=", ENDITEM,
"Name=q", "Value=", ENDITEM,
"Name=txtUserName", "Value=user0001", ENDITEM,
"Name=txtUserPwd", "Value=e10adc3949ba59abbe56e057f20f883", ENDITEM, //密码 123456 被转为 32 位的 MD5
"Name=txtUserPwd2", "Value=e10adc3949ba59abbe56e057f20f883", ENDITEM,
遇到此种情况时,第一种方法就是将“用户名”参数化,密码设为一样,即每个用户名的密码都为
e10adc3949ba59abbe56e057f20f883
还有一种方法就是利用 MD5 函数。这里介绍一种算法:
#ifndef MD5_H
#define MD5_H
#ifdef __alpha
typedef unsigned int uint32;
#else
typedef unsigned long uint32;
#endif
struct MD5Context {
uint32 buf[4];
uint32 bits[2];
unsigned char in[64];
};
extern void MD5Init();
extern void MD5Update();
extern void MD5Final();
extern void MD5Transform();
typedef struct MD5Context MD5_CTX;