SYSV checksum
The SYSV checksum algorithm was a commonly used, legacy checksum algorithm.
It has been implemented in UNIX System V and is also available through the sum command line utility.
This algorithm is useless on a security perspective, and is weaker than the CRC-32 cksum for error detection.
Description of the algorithm
The main part of this algorithm is simply adding up all bytes in a 32-bit sum. As a result, this algorithm has the characteristics of a simple sum:- re-arranging the same bytes in another order does not change the checksum.
- increasing one byte and decreasing another byte by the same amount does not change the checksum.
- adding or removing zero bytes does not change the checksum.
The FreeBSD pseudocode for this algorithm is:
s = sum of all bytes;
r = s % 2^16 + / 2^16;
cksum = + r / 2^16;
The last part folds the value into 16 bits.