Potpis datoteke u računalnom programiranju je jedinstveni identifikacijski broj koji se nalazi na početku datoteke. Ovaj broj identificira vrstu datoteke, dajući informacije o podacima sadržanim u stvarnoj datoteci. Ove se informacije mogu koristiti za određivanje vrste datoteke koja se čita kada je ekstenzija datoteke ili korisnička pogreška pogrešno identificirala datoteku kao netočnu vrstu. Potpis datoteke također može sadržavati informacije koje osiguravaju da su izvorni podaci koji su pohranjeni u datoteci i dalje netaknuti i da nisu promijenjeni. Kombinacija ovih elemenata omogućuje da potpis datoteke služi kao važan oblik provjere, posebno protiv računalnih virusa.
Koncept potpisa datoteke pojavio se zbog potrebe za zaglavljem datoteke, blokom podataka na početku datoteke koji definira parametre kako se informacije pohranjuju u datoteci. Dio informacija zaglavlja je slijed bajtova koji definira vrstu datoteke koja je izvorno stvorena. To može biti slikovna datoteka, dokument iz određenog programa ili čak vrsta protokola kada se tok datoteka koristi kao komunikacijska metoda između klijenta i poslužitelja. Zaglavlje datoteke ne koristi definirani standard; on je, umjesto toga, vlasništvo svakog različitog formata, što znači da je programu ili operativnom sustavu potrebna baza podataka potpisa da bi se odredila vrsta nepoznate datoteke.
Stvarni potpis datoteke ponekad se naziva čarobnim brojem. U programiranju, ovo je jedinstvena vrijednost u podatkovnom polju koje zauzima. Kada gledate zaglavlje datoteke kako biste odredili vrstu datoteke, to znači da ne bi trebala biti ista dva potpisa datoteke, što omogućuje da svaka vrsta formata ima poseban identifikacijski niz bajtova. To može biti od posebne koristi kada se radi o prijenosu i tumačenju datoteka na mreži, gdje bi identifikacijski nastavak datoteke mogao biti proizvoljan i na njega se ne može pouzdati kao na identifikator za vrstu datoteke.
Osim samo vrste datoteke, potpis datoteke također može sadržavati informacije koje omogućuju provjeru pogreške na datoteci kako bi se potvrdilo da su podaci netaknuti. To se često izvodi pomoću funkcije poznate kao kontrolni zbroj. Kontrolni zbroj je funkcija koja koristi cjelobrojne vrijednosti podataka datoteke za stvaranje matematičkih vrijednosti koje se mogu replicirati nakon što se datoteka prenese ili učita. U najosnovnijem obliku, ovaj proces uključuje dodavanje vrijednosti niza bajtova u datoteci i zatim snimanje zbroja, dopuštajući programu koji dekodira datoteku da izvrši istu funkciju. Ako se rezultati razlikuju tijekom dekodiranja, onda je datoteka možda oštećena i podaci mogu biti nevažeći ili su mogli biti izmijenjeni u zlonamjerne svrhe.