unsigned long TestCRC32(unsigned long CRC32, //初始值
unsigned char *Buff, //数组
unsigned long Len) //数组长度
{
unsigned long i;
while(Len--)
{
for(i = 0; i < 8; i++)
{
if(CRC32 & 1)
CRC32 = (CRC32 >> 1) ^ 0xEDB88320;
else
CRC32 = (CRC32 >> 1);
if((*Buff) & (1 << i))
CRC32 ^= 0xEDB88320;
}
Buff++;//下一个字节
}
return CRC32;
}
算法如上,数据长度0x800,全为0时结果为0x75f70336 想反推初始值。
如果需要其他数据,也可以给出,只是数据长度0x800不可变 |