Una firma di file nella programmazione del computer è un numero identificativo univoco situato all’inizio di un file. Questo numero identifica il tipo di file, fornendo informazioni sui dati contenuti all’interno del file stesso. Queste informazioni possono essere utilizzate per determinare quale tipo di file viene letto quando l’estensione del file o l’errore dell’utente ha identificato erroneamente il file come un tipo errato. La firma del file può anche contenere informazioni che garantiscono che i dati originali archiviati nel file siano ancora intatti e non siano stati modificati. La combinazione di questi elementi consente alla firma di un file di fungere da importante forma di verifica, in particolare contro i virus informatici.
Il concetto di una firma di file è emerso a causa della necessità di un’intestazione di file, un blocco di dati all’inizio di un file che definisce i parametri di come le informazioni vengono memorizzate nel file. Parte delle informazioni di intestazione è una sequenza di byte che definisce il tipo di file originariamente creato. Può trattarsi di un file immagine, di un documento di un programma specifico o anche di un tipo di protocollo quando viene utilizzato un flusso di file come metodo di comunicazione tra un client e un server. L’intestazione del file non utilizza uno standard definito; esso, invece, è proprietario di ogni diverso formato, il che significa che un programma o un sistema operativo ha bisogno di un database di firme dei file per determinare il tipo di un file sconosciuto.
La firma del file effettiva viene talvolta definita un numero magico. In programmazione è un valore unico nel campo dati che occupa. Quando si esamina un’intestazione di file per determinare il tipo di file, ciò significa che non dovrebbero esserci due firme di file uguali, consentendo a ciascun tipo di formato di avere una stringa di byte identificativa distinta. Ciò può essere particolarmente utile quando si ha a che fare con il trasferimento e l’interpretazione di file online, in cui l’estensione identificativa di un file potrebbe essere arbitraria e non può essere utilizzata come identificatore per un tipo di file.
Oltre al solo tipo di file, una firma di file può contenere anche informazioni che consentono di eseguire il controllo degli errori su un file in modo che i dati in esso contenuti possano essere confermati come intatti. Questo viene spesso eseguito utilizzando una funzione nota come checksum. Un checksum è una funzione che utilizza i valori interi dei dati del file per creare valori matematici che possono essere replicati dopo che un file è stato trasferito o caricato. Nella forma più elementare, questo processo prevede l’aggiunta dei valori di una serie di byte nel file e quindi la registrazione della somma, consentendo al programma che decodifica il file di svolgere la stessa funzione. Se i risultati sono diversi durante la decodifica, il file potrebbe essere stato danneggiato e i dati potrebbero non essere validi o potrebbero essere stati modificati per scopi dannosi.