The checksum of a file is a simple way to check if its data has become corrupted when being transferred from one place to another. If the checksum value of the file is the same before and after being transferred, it is unlikely that any data corruption has accidentally occurred — from signal noise, for example.
Let's say you have a file, myfile.txt, containing the following text:
This is my original file.
You can calculate the checksum using cksum:
cksum myfile.txt
...and this will be the output:
4164605383 26 myfile.txt
Here, 4164605383 is the checksum, and 26 is the amount of data, in bytes. If you change the contents of the file to this:
This is no longer my original file.
...and run cksum again, you will see the following:
cksum myfile.txt
632554699 36 myfile.txt
The checksum is very different, and we can also see that there are ten more bytes of data.
The checksum will be different even if the number of bytes is same as the original:
This is a corrupted file.
cksum myfile.txt
2256884274 26 myfile.txt
...and it will change dramatically even if only one character is different:
This is my original file?
cksum myfile.txt
3832066352 26 myfile.txt
Important: Simple checksums, such as those produced by the cksum tool, are useful only for detecting accidental data corruption. It's not meant to protect against malicious alteration of a file. It's been proven that an attacker could carefully make changes to a file that would produce an identical cksum checksum. Therefore, if you need to be absolutely certain that a file is identical to the original, use a more powerful method. We highly recommend using the SHA256 algorithm for verifying data integrity. You can generate and verify SHA256 hash sums using tools such as GNU rhash.