SYSV checksum
From BitcoinWiki
This is the approved revision of this page, as well as being the most recent.
The SYSV checksum algorithm is a commonly used, legacy checksum algorithm. It has been implemented in UNIX System V and is also available through the GNU sum command line utility.
Contents
Newer checksum algorithms[edit]
The manual page of the GNU sum utility program (that implements the BSD checksum algorithm) states: "sum is provided for compatibility; the cksum program is preferable in new applications."
Description of the algorithm[edit]
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 (disadvantages and advantages) 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 last two lines of the algorithm reduce the total sum to a 16-bit number.
Sources[edit]
- official GNU sum manual page
- coreutils download page --- find and unpack the newest version of the coreutils package, read src/sum.c
Source[edit]
See Also on BitcoinWiki[edit]