Vad är en filsignatur?
En filsignatur i datorprogrammering är ett unikt identifieringsnummer som finns i början av en fil. Detta nummer identifierar filtypen och ger information om data som finns i själva filen. Denna information kan användas för att bestämma vilken typ av fil som läses när filändelsen eller användarfel har felidentifierat filen som en felaktig typ. Filsignaturen kan också innehålla information som säkerställer att de ursprungliga data som lagrats i filen fortfarande är intakta och inte har ändrats. Kombinationen av dessa element tillåter en filsignatur att fungera som en viktig form för verifiering, särskilt mot datavirus.
Konceptet med en filsignatur framkom på grund av behovet av en filhuvud, ett datablock i början av en fil som definierar parametrarna för hur information lagras i filen. En del av rubrikinformationen är en sekvens av byte som definierar filtypen som ursprungligen skapades. Detta kan vara en bildfil, ett dokument från ett specifikt program eller till och med en protokolltyp när en filström används som en kommunikationsmetod mellan en klient och server. Filhuvudet använder inte en definierad standard; det är istället äganderätt till varje olika format, vilket betyder att ett program eller operativsystem behöver en filsignaturdatabas för att bestämma typen av en okänd fil.
Den faktiska filsignaturen kallas ibland som ett magiskt nummer. Vid programmering är detta ett unikt värde i det datafält som det upptar. När man tittar på en filhuvud för att bestämma filtypen, betyder det att inga två filsignaturer ska vara desamma, vilket gör att varje typ av format har en distinkt identifierande sträng av byte. Detta kan vara särskilt användbart när man hanterar överföring och tolkning av filer online, där den identifierande förlängningen av en fil kan vara godtycklig och inte kan lita på som en identifierare för en filtyp.
Förutom bara filtypen kan en filsignatur också innehålla information som gör det möjligt att utföra felkontroll på en fil så att data som den har kan bekräftas vara intakt. Detta utförs ofta med en funktion som kallas kontrollsumma. En kontrollsumma är en funktion som använder heltal för fildata för att skapa matematiska värden som kan replikeras efter att en fil har överförts eller laddats. I den mest grundläggande formen innebär denna process att lägga till värdena för en serie byte i filen och sedan spela in summan, vilket gör att programmet avkodar filen för att utföra samma funktion. Om resultaten är annorlunda under avkodningen, kan filen ha skadats och data kan antingen vara ogiltiga eller kan ha ändrats för skadliga ändamål.