- Source: 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 (e.g. moving text from one place to another place) 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.
As a result, many common changes to text data are not detected by this method.
The FreeBSD pseudocode for this algorithm is:
The last part folds the value into 16 bits.
References
Sources
official GNU sum manual page
GNU sum source code