Kontrolni zbrojevi su fiksni blokovi informacija ili podaci koji se koriste za provjeru i održavanje integriteta podataka prilikom pohranjivanja i prijenosa računalnih informacija. Koristeći matematičke funkcije, algoritam kontrolnog zbroja zbraja broj bitova u određenom bloku informacija i generira broj koji predstavlja točne podatke. Kada se podaci dupliciraju na bilo koji način, duplikat se zatim provjerava u odnosu na izvorni broj, putem izračunate vrijednosti. Ako se brojevi podudaraju, podaci se smatraju potpunim i točnim.
Većina valjanih protokola za prijenos datoteka (FTP) zahtijevaju neku vrstu provjere podataka, a mnoge funkcije mogu ne samo otkriti, već i popraviti manje probleme s integritetom podataka. Neke vrste kontrolnih zbroja – također poznate kao hash zbroji – uključuju md5 i provjere cikličke redundantnosti (CRC). CRC-ovi su vrsta kontrolnog zbroja poznatog kao kontrolni zbroj polinoma, koji može identificirati slučajne izmjene izvornog formata podataka.
Iako su korisni za otkrivanje pogrešaka u datotekama preuzetim putem weba ili putem peer-to-peer (P2P) mreža, kontrolni zbrojevi se također koriste u svim funkcijama u kojima se podaci mogu oštetiti prilikom prijenosa putem mreže ili medija za pohranu. Pogreške u podacima često su uzrokovane nedostajućim, dupliranim ili netočnim bitovima. Budući da se vrijednost kontrolnog zbroja izračunava na temelju svakog bita u bloku podataka, čak i jedan bit koji nedostaje može uzrokovati grešku kontrolnog zbroja.
Većina datoteka kodira kontrolne zbrojeve izravno u svoje podatke, obično dodane na kraju datoteke. Kada se datoteka prenese na drugi sustav ili uređaj, primatelj čita kontrolni zbroj i koristi svoj algoritam za provjeru da je cijela datoteka primljena bez greške. Datoteke s nedostajućim, oštećenim ili ponovljenim bitovima možda neće funkcionirati ispravno ili uopće. Može se činiti da drugi rade ispravno unatoč neuspjehu kontrolnog zbroja. Nepotpuni ili oštećeni podaci mogu se nastaviti degradirati tijekom vremena, sve dok ne postanu neupotrebljivi ili prouzrokuju pogreške.
Zbog svoje prirode, osnovni kontrolni zbrojevi općenito su korisni samo u provjeravanju i popravljanju malih blokova podataka. Kako se količina informacija povećava, povećava se i vjerojatnost greške koju kontrolni zbroj ne može otkriti niti ispraviti. To može uzrokovati da oštećeni podaci opetovano prolaze kontrolni zbroj, generiraju više pogrešaka, pa čak i pokvare datum kontrolnog zbroja.
Ciklične provjere redundancije, zbog povećane složenosti njihovih algoritama, imaju mnogo nižu stopu pogreške od standardnog kontrolnog zbroja i mogu se primijeniti na veće blokove podataka. Iako CRC-ovi nisu sigurni, oni i dalje pružaju veću pouzdanost pri provjeravanju i očuvanju integriteta podataka. Neki softver također nudi mogućnost kontrolnog zbroja i popravak pogrešaka na temelju prilagođenih funkcija.