Just out of curiosity this really, I found this checksum algorithm by a bit of reverse engineering of some old network code, it was being used to check UDP datagrams. I wondered if some of the more experienced coders here might recognise it as a standard algorithm, or whether it's proprietory?
Code:u16 GetChecksum(BYTE data[], u16 datalength){ unsigned int bytesum=0; unsigned int cumulativebytesum=0; for(int i = datalength; i>0; i--){ bytesum+=data[i-1]; if(bytesum>0xFF) bytesum-=0xFF; cumulativebytesum+=bytesum; } BYTE remainder = cumulativebytesum%0xFF; remainder = (remainder+bytesum)%0xFF; BYTE byte1 = 0xFF-remainder; BYTE byte2 = 0xFF-(byte1+bytesum)%0xFF; return 0x100*byte1+byte2; }



LinkBack URL
About LinkBacks


