Checksums and CRC can be very quick, but have significant drawbacks. SHA-256 hashes are best, although there are also error-correcting codes used in optical disks.
Hamming
How to design a method which not only detects errors in file data, but enables them to be corrected? A tale of Hamming, Reed, Solomon and CDs.
How can you squeeze recovery data into smaller storage space than you’d need for a second copy of a file? Using codes, explained here.
