Mis on faili allkiri?

Failisignatuur arvutiprogrammeerimises on unikaalne identifitseerimisnumber, mis asub faili alguses. See number identifitseerib faili tüübi, andes teavet tegelikus failis sisalduvate andmete kohta. Seda teavet saab kasutada selleks, et määrata, millist tüüpi faili loetakse, kui faililaiend või kasutajaviga on faili valesti tuvastanud kui vale tüüpi. Faili signatuur võib sisaldada ka teavet, mis tagab, et failis salvestatud algandmed on endiselt terved ja neid ei ole muudetud. Nende elementide kombinatsioon võimaldab failisignatuuril olla oluline kontrollivorm, eriti arvutiviiruste vastu.

Failisignatuuri kontseptsioon tekkis seetõttu, et vajati faili päist, faili alguses olevat andmeplokki, mis määrab failis teabe salvestamise parameetrid. Osa päise teabest on baitide jada, mis määrab algselt loodud failitüübi. See võib olla pildifail, teatud programmi dokument või isegi protokollitüüp, kui failivoogu kasutatakse sidemeetodina kliendi ja serveri vahel. Faili päis ei kasuta määratletud standardit; selle asemel kuulub see igale erinevale vormingule, mis tähendab, et programm või operatsioonisüsteem vajab tundmatu faili tüübi määramiseks failisignatuuride andmebaasi.

Tegelikku failisignatuuri nimetatakse mõnikord maagiliseks numbriks. Programmeerimisel on see väärtus, mis on ainulaadne andmeväljas, mida see hõivab. Kui vaadata failitüübi määramiseks faili päist, siis ei tohiks kaks failisignatuuri olla ühesugused, võimaldades igal vormingutüübil olla eraldiseisev baitide identifitseeriv string. See võib olla eriti kasulik failide võrgus edastamisel ja tõlgendamisel, kus faili identifitseeriv laiend võib olla meelevaldne ja sellele ei saa failitüübi identifikaatorina tugineda.

Lisaks failitüübile võib failisignatuur sisaldada ka teavet, mis võimaldab failis vigu kontrollida, et saaks kinnitada, et selles hoitavad andmed on puutumatud. Seda tehakse sageli kontrollsummana tuntud funktsiooni abil. Kontrollsumma on funktsioon, mis kasutab failiandmete täisarvude väärtusi, et luua matemaatilisi väärtusi, mida saab pärast faili edastamist või laadimist kopeerida. Kõige lihtsamal kujul hõlmab see protsess faili baitide seeria väärtuste lisamist ja seejärel summa salvestamist, mis võimaldab faili dekodeerival programmil täita sama funktsiooni. Kui tulemused on dekodeerimise ajal erinevad, võib fail olla rikutud ja andmed võivad olla kehtetud või neid võib pahatahtlikel eesmärkidel muudetud.