Požadavek na zajištění konzistence dat je jedním ze základních v počítačovém světě. Umožňuje mimo jiné:
Použití některých technik se datuje snad už do čtyřicátých let dvacátého století, například u kontrolních součtů pro data na děrných štítcích.
Potřebujeme-li data (ať už v nějakém souboru nebo třeba v rámci nějakého informačního protokolu) doplnit o nějakou formu kontroly, zjevně k nim budeme muset nějaká další data přidat. Přitom mimo jiné:
Je zjevné, že v praxi používané metody budou muset býti nějakým kompromisem mezi co největším zajištěním dat a použitelností dané metody.
Stáhnete-li soubor z internetu, obzvláště spustitelný, neměli byste v žádném případě věřit v jeho neporušenost (nenapadnutost). Lepší poskytovatelé instalačních souborů uveřejňují na svých stránkách velikost souborů, jejich kontrolní součet a digitální podpis.
Velikost souboru a jeho kontrolní součet umožňují ověřit, že stažený soubor je právě tím, který očekáváte, a že ho cestou někdo nepodvrhl za jiný. Velikost snadno ověříte ze souboru samotného, kontrolní součet pak typicky získáte z doplňkového souboru u poskytovatele dat a musíte ho ověřit pomocí příslušného algoritmu.
Digitální podpis souboru (dat) pak zaručuje, že původcem souboru je skutečně ta osoba či organizace, kterou očekáváte. Vyžaduje to, abyste u sebe měli ověřený veřejný klíč příslušného poskytovatele, proti němuž se dá vlastní digitální podpis souboru (dat) ověřit.
Zakomprimované archívy slouží k tomu, aby přenášená data zabírala méně místa, aby se snáze distribuovala (pokud je obsahem archívu více souborů než jeden), a také především k tomu, aby se zaručila neporušenost dat.
Dostupné komprimační algoritmy typicky na každé chybě v datech selžou při jejich „rozbalování“, ať už globálně (nevybalí nic) nebo lokálně (vybalí se pouze neporušená část dat).
Některé komprimační algoritmy obsahují dokonce i kontrolní data sloužící k opravě alespoň některých chyb způsobených porušením přenášených dat. Platí za to samozřejmě tím, že dat k přenosu je víc, protože tato opravná data se musí k původním přidat.
Místo, kde jsou kontrolní součty a opravné kódy na denním pořádku, je sama komunikace po internetu. Všechny složky přenosové soustavy (a to až po hardwarovou úroveň) musí obsahovat mechanismy umožňující poznat, zda zasílaná data dorazila v pořádku – jinak bychom totiž nemohli vůbec po internetu pracovat, protože by data dorážela v nekonzistentním stavu a nebylo by možné je vůbec použít (nebo by jejich použití velmi rychle selhalo).
Pro ilustraci na obyčejném textu:
Zaručuje-li přenosový protokol konzistenci dat, měli byste obdržet to, o co jste si zažádali. Nebo nic.
V základě všech kódů jsou metody, jak poznat, že v (přenesených) datech je nějaká chyba. Mezi nejjednodušší patří paritní bit, typicky používaný na úrovni hardwareu pro malé kousky dat (1 bajt), mezi složitější pak otiskové metody jako MD5 či CRC32.
Na další úrovni jsou pak kódy, které kromě rozpoznání chyb je též – v rozmezí daném použitou metodou – dokáží opravit. Jsou jich doslova mraky, ale souhrně se schovávají pod zkratkou ECC (error correction code). Zde mezi typické zástupce patří Hammingovy kódy, konvoluční kódy a především pak Reedovy-Solomonovy kódy. V jednodušších případech se dají použít i algoritmy z rodiny CRC (cyclic redundancy check).