A cyclic redundancy check is an error-detecting code commonly used in digital networks and storage devices to detect accidental changes to raw data. Blocks of data entering these systems get a short check value attached, based on the remainder of a polynomial division of their contents; on retrieval the calculation is repeated, and corrective action if the check values do not match, in which case the data are corrupted.
Note: Original version altered from the version posted online by Stephan Brumme
Disclaimer from original author: http://create.stephan-brumme.com/disclaimer.html