Cyclic redundancy check
A cyclic redundancy check (usually abbreviated to CRC) is a mechanism for detecting (and sometimes repairing) errors in data. It is used to make sure that data stored in main memory, or on secondary storage, is not corrupted; and for data which is transmitted over a network (e.g. an Ethernet), to make sure that the data is not damaged in transmission. It is a more sophisticated modern successor to parity.
It consists of the output of a polynomial function applied to the values in a block of data, and then attached to the data. Depending on the particular algorithm, and the sizes of the data item being protected, and the stored checksum, it may be possible to repair some errors. A typical CRC on memory words might be able to repair 1-bit errors, and detect any 2-bit error.