Kontrolne vsote so fiksni bloki informacij ali datum, ki se uporabljajo za preverjanje in vzdrževanje celovitosti podatkov pri shranjevanju in prenosu računalniško podprtih informacij. Z uporabo matematičnih funkcij algoritem kontrolne vsote sešteje število bitov v določenem bloku informacij in ustvari število, ki predstavlja točne podatke. Ko se podatki na kakršen koli način podvojijo, se dvojnik nato prek izračunane vrednosti preveri glede na izvirno številko. Če se številke ujemajo, se podatki štejejo za popolne in točne.
Večina veljavnih protokolov za prenos datotek (FTP) zahteva nekakšno preverjanje podatkov, številne funkcije pa so sposobne ne samo zaznati, temveč tudi popraviti manjše težave z integriteto podatkov. Nekatere vrste kontrolnih vsot – znane tudi kot zgoščene vsote – vključujejo md5 in ciklične odvečne preglede (CRC). CRC-ji so vrsta kontrolne vsote, znane kot kontrolna vsota polinomske kode, ki lahko prepozna naključne spremembe izvirnega formata podatkov.
Čeprav so uporabne za odkrivanje napak v datotekah, prenesenih prek spleta ali prek omrežij peer-to-peer (P2P), se kontrolne vsote uporabljajo tudi v kateri koli funkciji, pri kateri se lahko podatki poškodujejo pri prenosu po omrežju ali na pomnilniku. Podatkovne napake so pogosto posledica manjkajočih, podvojenih ali napačnih bitov. Ker se vrednost kontrolne vsote izračuna na podlagi vsakega bita v podatkovnem bloku, lahko celo en manjkajoči bit povzroči napako kontrolne vsote.
Večina datotek kodira kontrolne vsote neposredno v svojih podatkih, običajno priloženih na koncu datoteke. Ko je datoteka prenesena v drug sistem ali napravo, prejemnik prebere kontrolno vsoto in s svojim algoritmom preveri, ali je bila celotna datoteka prejeta brez napak. Datoteke z manjkajočimi, poškodovanimi ali ponavljajočimi se biti morda ne bodo delovale pravilno ali sploh ne bodo delovale. Drugi se morda zdijo, da delujejo pravilno, kljub neuspehu kontrolne vsote. Nepopolni ali poškodovani podatki se lahko sčasoma še naprej slabšajo, dokler ne postanejo neuporabni ali povzročijo napake.
Osnovne kontrolne vsote so zaradi svoje narave na splošno uporabne le pri preverjanju in popravljanju majhnih blokov podatkov. Ko se količina informacij poveča, se poveča tudi verjetnost napake, ki je kontrolna vsota ne more niti zaznati niti popraviti. To lahko povzroči, da poškodovani podatki večkrat prenesejo kontrolno vsoto, ustvarijo več napak in celo pokvarijo datum kontrolne vsote.
Ciklična preverjanja redundance imajo zaradi povečane kompleksnosti njihovih algoritmov veliko nižjo stopnjo napak kot standardna kontrolna vsota in jih je mogoče uporabiti za večje bloke podatkov. Čeprav CRC-ji niso varni, vseeno zagotavljajo večjo zanesljivost pri preverjanju in ohranjanju celovitosti podatkov. Nekatera programska oprema ponuja tudi zmožnost kontrolne vsote in popravilo napak na podlagi funkcij po meri.