This action might not be possible to undo. Are you sure you want to continue?
A checksum or hash sum is a fixed-size datum computed from an arbitrary block of digital data for the purpose of detecting accidental errors that may have been introduced during its transmission or storage. The integrity of the data can be checked at any later time by recomputing the checksum and comparing it with the stored one. If the checksums match, the data were almost certainly not altered (either intentionally or unintentionally). The procedure that yields the checksum from the data is called a checksum function or checksum algorithm. A good checksum algorithm will yield a different result with high probability when the data is accidentally corrupted; if the checksums match, the data is very likely to be free of accidental errors.
Effect of a typical checksum function (the Unix cksum utility).
Checksum functions are related to hash functions, fingerprints, randomization functions, and cryptographic hash functions. However, each of those concepts has different applications and therefore different design goals. Check digits and parity bits are special cases of checksums, appropriate for small blocks of data (such as Social Security numbers, bank account numbers, computer words, single bytes, etc.). Some error-correcting codes are based on special checksums that not only detect common errors but also allow the original data to be recovered in certain cases.
Parity byte or parity word
The simplest checksum algorithm is the so-called longitudinal parity check, which breaks the data into "words" with a fixed number n of bits, and then computes the exclusive or of all those words. The result is appended to the message as an extra word. To check the integrity of a message, the receiver computes the exclusive or of all its words, including the checksum; if the result is not a word with n zeros, the receiver knows that a transmission error occurred. With this checksum, any transmission error that flips a single bit of the message, or an odd number of bits, will be detected as an incorrect checksum. However, an error that affects two bits will not be detected if those bits lie at the same position in two distinct words. If the affected bits are independently chosen at random, the probability of a two-bit error being undetected is 1/n.
so as to increase the likelihood that "typical" transmission errors will end up in an invalid corner. To validate a message. with dimension m+n. and cyclic redundancy checks (CRCs). The valid received messages (those that have the correct checksum) comprise a smaller set. or inserting or deleting words with all bits set to zero. . including the checksum. and append the two's complement of the total as the checksum. address these weaknesses by considering not only the value of each word but also its position in the sequence. The goal of a good checksum algorithm is to spread the valid corners as far from each other as possible. An error that affects k bits moves the message to a corner that is k steps removed from its correct corner. discarding any overflow bits. Position-dependent checksums The simple checksums described above fail to detect some common errors that affect many bits at once. General considerations A message that is m bits long can be viewed as a corner of the m-dimensional hypercube. a Unix command that generates both a 32-bit CRC and a byte count for any given input file. which incorporates many checksum implementations and allows to extend with as many as you need. the receiver adds all the words in the same manner. a Unix command that generates an MD5 sum • jdigest . SHA-1 and SHA-256 sums for any given input file. • Bitser.Checksum 2 Modular sum A variant of the previous algorithm is to add all the "words" as unsigned binary numbers. with only 2m corners. a free Microsoft Windows application that calculates MD5. The effect of a checksum algorithm that yields an n-bit checksum is to map each m-bit message to a corner of a larger hypercube. The 2m+n corners of this hypercube represent all possible received messages. a Java API. A single-bit transmission error then corresponds to a displacement from a valid corner (the correct message and checksum) to one of the m adjacent corners. The checksum algorithms that are most used in practice. such as Fletcher's checksum. if the result is not a word full of zeros. a Java library. an error must have occurred. Adler-32. but the probability that a two-bit error will go undetected is a little less than 1/n. a Java GUI tool that generates and checks MD5 and SHA sums • Jacksum . This variant too detects any single-bit error. usable both through a GUI and a CLI. • jcksum . This feature generally increases the cost of computing the checksum. such as changing the order of data words. Checksum tools • cksum. • md5sum. that can be used by developers in Java applications to calculate checksums using different algorithms.
com/ p/ jcksum/ http:/ / www. com/ p/ jdigest/ http:/ / www. google. de/ java/ jacksum/ index. jonelo.Checksum 3 External links • Additive Checksums (C)  References     http:/ / code. netrino. com/ Embedded-Systems/ How-To/ Additive-Checksums . html http:/ / code. google.
Boothy443. Mitch Ames. TomViza. Jorge Stolfi. Billybobbilly4325. Eloy. GentlemanGhost. Spiritllama. Arvindn. The Anome. adapted by Jorge Stolfi License Creative Commons Attribution-Share Alike 3. DéRahier.Article Sources and Contributors 4 Article Sources and Contributors Checksum Source: http://en. Mintleaf.org/licenses/by-sa/3. Lacrimosus. Mindstalk. Conversion script. Mormegil. Cuddlyable3. Gdassieu. Dicklyon. Licenses and Contributors Image:Checksum. Badly Bradley.0/ .php?oldid=449181682 Contributors: Abdull. Alex43223. Aldie. Simon Shek. Sg227. Freewol. MER-C. BNSDRX09. Gregb. Giftlite.wikipedia. Vonvon.0 Unported //creativecommons.php?title=File:Checksum. Newell311. Jhodapp1. Gmarie42. Gdr. Drugonot. Samw. Chexum. Takanoha.svg License: Public Domain Contributors: Original by Helix84. Karnesky. Dysprosia. Iamthedeus. JeffreyBKing. DanielPharos. Taw. Davemckenna01. Sedimin. Joel Saks. Jonelo. Frappucino. Nealmcb. CanisRufus. Robofish. ShaunMacPherson. EskilA. Bentogoa. Wayiran. Sterrys. Newarrior. Lowellian. Avihu. Oleg Alexandrov. Damian Yerrick.org/w/index. Stalfur. Traxs7. Nakon. Salgueiro. Ciphergoth. Tobias Hoevekamp. Alansohn.wikipedia. Matt Crypto. Entropicorder. 149 anonymous edits Image Sources. Navicular. Diddi.org/w/index. Agarlock. Neelix. FitzColinGerald. Furrykef. Ksempac. Linas. Peterjam70. Melchoir. CD-Host. Rick Burns. Frap. Ham Pastrami. Ozden. Rjwilmsi.svg Source: http://en. MementoVivere. KLLvr283. Wolfch. Zoobiewa. Ykhwong. Fredrik. Mh.