带USB加密锁的压力测试脚本程序编写
来源:互联网 发布:js给href赋参数值 编辑:程序博客网 时间:2024/05/01 04:36
在一个项目中,由于客户端采用了usb密码锁加密,也就是当服务器端返回一个数字串后需要在客户端插上usb key以后才能进行加密,然后将加密的结果传给服务器端进行认证,这就使得传统的压力测试录制脚本变得无效。例如使用工商银行的U盾,就是类似的情况。因此必须在脚本中加入调用客户端加密代码的功能,同时必须插入usb device,测试时候使用的测试工具是QALoad,因此可以直接用vc++来调用加密程序,但是由于加密程序直接调用存在一定的困难,因此使用vb连编写一个类并编译为dll,然后使用vc++再QALoad中进行调用。下面是在QALoad中使用vc++调用vb编写的dll相关的代码:
HRESULT hresult;
CLSID clsid;
hresult=CoInitialize(NULL);
//初始化COM接口
hresult=CLSIDFromProgID(OLESTR("ca.clsCA"), &clsid); //其中clsCA为在dll中定义的类名
_clsCA *t;
hresult=CoCreateInstance(clsid,NULL,CLSCTX_INPROC_SERVER,__uuidof(_clsCA),(void **) &t);
if(FAILED(hresult))
{
}
char * Field[1];
Field[0]="0.6727308047538793";//这个就是服务器端返回的字串
try{
t->ranNum=Field[0];//传入要加密的字串
t->sign();// 进行加密,该函数是在vb中的进行加密的函数
_bstr_t s=t->strSignedData;//取得加密的数据
const char * v=s;
char q[1000];
strcpy(q,v);
char tmp[1000]="/0";
for(int i=0;i<strlen(q);i++)//进行编码的转换
{
if(q[i]=='+' || q[i]=='-' || q[i]=='*' ||q[i]=='/' || q[i]=='=')
{
if(q[i]=='+')
strcat(tmp,"%2B");
if(q[i]=='-')
strcat(tmp,"%2D");
if(q[i]=='/')
strcat(tmp,"%2F");
if(q[i]=='*')
strcat(tmp,"%2A");
if(q[i]=='=')
strcat(tmp,"%3D");
}
else
{
strcat(tmp,"0");
tmp[strlen(tmp)-1]=q[i];
}
}
// _bstr_t s=t->strErr;
}
catch(_com_error e)///捕捉异常
{
CString errormessage;
errormessage.Format("%s",e.ErrorMessage());
}
t->Release();
CoUninitialize();
2.vb dll程序
- 带USB加密锁的压力测试脚本程序编写
- 测试脚本的编写
- HTTP,WebService,Socket接口压力测试脚本编写
- 用LoadRunner JavaVuser进行接口压力测试--编写脚本篇
- apache自带的压力测试工具
- mysql自带的压力测试工具
- apache 自带的 压力测试
- Python编写的压力测试(转)
- 测试web服务器的压力测试程序
- 压力测试shell脚本
- mysql 压力测试脚本
- MYsql压力测试脚本
- mysql 压力测试脚本
- Camera压力测试脚本
- mysql 压力测试脚本
- ab 压力测试 脚本
- PYQT5+python3.6+QT编写一个带ui的加密解密小程序<凯撒加密><维吉尼亚加密><仿射加密><培根加密>
- Loadrunner支持MD5加密脚本的编写
- .net的广告组件开源
- 创建和管理表
- Squidoo:人人都是专家
- MySQL数据库的复制与修复
- FTP下载缓慢的原因——网卡
- 带USB加密锁的压力测试脚本程序编写
- C#调用Resources.resx资源文件中的资源
- Google Maps API 中文说明文档
- 自定义Table
- 又是一期好光景
- MOSS定制,开发方式
- Oracle:PL/SQL 中如何使用Array
- Struts国际化处理的配置
- 判断是不是64bit 64位Windows的函数