LoadRunner实现:计算字符串Crc32
来源:互联网 发布:p2p网络贷款平台排名 编辑:程序博客网 时间:2024/04/29 10:23
LoadRunner实现:计算字符串Crc32
可以在LR里用头文件保存或存为C文件或附加函数,代码如下:
unsigned long Crc32Table[256];
void GetCRC32Table()
{
unsigned long crc, i, j;
unsigned long poly = 0xEDB88320;
for(i=0; i<256; i++)
{
crc = i;
for(j=8; j>0; j--)
{
if(crc & 1)
crc = (crc >> 1) ^ poly;
else
crc >>= 1;
}
Crc32Table[i] = crc;
}
}
void GetCrc32Long(const char *ptr, char *out)
{
unsigned long crc = 0xFFFFFFFF;
//unsigned char *ptr = buffer;
long len = strlen(ptr);
char crcStr[64];
GetCRC32Table();
while(len > 0)
{
crc = ((crc >> 8) & 0x00FFFFFF) ^ Crc32Table[(crc ^ *ptr) & 0xFF];
ptr++;
len--;
}
//转换成16进制字符串
itoa(crc^0xffffffff,crcStr,10);
strcpy(out, crcStr);
}
void GetCrc32(const char *ptr, char *out)
{
char crcStr[32];
int i,j;
int crcInt = atoi(out);
GetCrc32Long(ptr, out);
itoa(crcInt, crcStr, 16);
//小写字符转换成大写字符
for(i=0;i<strlen(crcStr);i++)
{
crcStr[i]=toupper(crcStr[i]);
}
strcpy(out,"");
if (strlen(crcStr)<8)
{
for (j=0;j<8-strlen(crcStr);j++)
{
strcat(out, "0");
}
}
strcat(out, crcStr);
}
调用方式:
void main()
{
char res[13];
GetCrc32Long("a",res);
lr_output_message(res);
GetCrc32("a",res);
lr_output_message(res);
}
结果输出:
main.c(5): -390611389
main.c(8): E8B7BE43
可以在LR里用头文件保存或存为C文件或附加函数,代码如下:
unsigned long Crc32Table[256];
void GetCRC32Table()
{
unsigned long crc, i, j;
unsigned long poly = 0xEDB88320;
for(i=0; i<256; i++)
{
crc = i;
for(j=8; j>0; j--)
{
if(crc & 1)
crc = (crc >> 1) ^ poly;
else
crc >>= 1;
}
Crc32Table[i] = crc;
}
}
void GetCrc32Long(const char *ptr, char *out)
{
unsigned long crc = 0xFFFFFFFF;
//unsigned char *ptr = buffer;
long len = strlen(ptr);
char crcStr[64];
GetCRC32Table();
while(len > 0)
{
crc = ((crc >> 8) & 0x00FFFFFF) ^ Crc32Table[(crc ^ *ptr) & 0xFF];
ptr++;
len--;
}
//转换成16进制字符串
itoa(crc^0xffffffff,crcStr,10);
strcpy(out, crcStr);
}
void GetCrc32(const char *ptr, char *out)
{
char crcStr[32];
int i,j;
int crcInt = atoi(out);
GetCrc32Long(ptr, out);
itoa(crcInt, crcStr, 16);
//小写字符转换成大写字符
for(i=0;i<strlen(crcStr);i++)
{
crcStr[i]=toupper(crcStr[i]);
}
strcpy(out,"");
if (strlen(crcStr)<8)
{
for (j=0;j<8-strlen(crcStr);j++)
{
strcat(out, "0");
}
}
strcat(out, crcStr);
}
调用方式:
void main()
{
char res[13];
GetCrc32Long("a",res);
lr_output_message(res);
GetCrc32("a",res);
lr_output_message(res);
}
结果输出:
main.c(5): -390611389
main.c(8): E8B7BE43
- LoadRunner实现:计算字符串Crc32
- LoadRunner实现计算字符串Md5(十二)
- 用python实现crc32求字符串校验码
- 用python实现crc32求字符串校验码
- loadrunner 实现字符串替换
- ORACLE中实现CRC32的计算函数,SOLARIS平台
- 计算文件CRC32数值
- CRC32直接计算法计算字符串校验值示例(VC++)
- 计算文件crc32(精简版)
- 计算CRC32的C模块
- ts crc32 验证与计算
- CRC32碰撞的实现
- CRC32碰撞的实现
- java 实现CRC32校验
- CRC32碰撞的实现
- JavaScript实现CRC32函数
- java 实现CRC32校验
- C#实现crc32函数
- 喷涂厚度
- strace工具跟踪系统调用和信号
- Android开发之androidmanifest.xml中声明相关权限的说明
- 关于HFSS中的:internal error:WebUpdate is missing require information问题解决办法!
- asp.NET传值
- LoadRunner实现:计算字符串Crc32
- POJ 1556 The Doors(Dijkstra+计算几何)
- 清理C盘方法
- 遗失的美好_一个弱校Acmer的三年回忆 (2)
- 数据库与java操作小有体会
- 也谈今日IBM ( IBM china / IGSC / ISSC / ETC )
- 无效的授权说明
- 插入的分区关键字未映射到任何分区
- sql server 2008启用数据压缩(基础)