A checksum is a small-sized block of data derived from another block of digital data for the purpose of detecting errors that may have been introduced during its transmission or storage. It is a technique used to determine the authenticity of received data, i.e., to detect whether there was an error in transmission. Checksums are often used to verify data integrity but are not relied upon to verify data authenticity. The procedure which generates this checksum is called a checksum function or checksum algorithm. Depending on its design goals, a good checksum algorithm usually outputs a significantly different value, even for small changes made to the input.
To produce a checksum, you run a program that puts that file through an algorithm. Typical algorithms used for this include MD5, SHA-1, SHA-256, and SHA-512. The checksum value itself is typically a long string of letters and numbers that act as a sort of fingerprint for a file or set of files to indicate the number of bits included in the transmission.
Checksums work by giving the party on the receiving end information about the transmission to ensure that the full range of data is delivered. If a random error occurs due to download problems or hard drive issues, the resulting checksum will be different, even if its just a tiny error. Checksums are a useful way to ensure that a file doesnt have an error.
The need to apply checksum or any other error-detection method is done simply to identify the damage to the data when its being transmitted over the network channel. The checksum uses the Checksum Generator on the sender side and the Checksum Checker on the receiver side.