在計算機程序設計中,文件簽名是一個位于文件開頭的唯一識別號。這個數字標識文件的類型,提供有關實際文件中包含的數據的信息。當文件擴展名或用戶錯誤將文件錯誤地標識為不正確的類型時,此信息可用于確定正在讀取的文件...
在計算機程序設計中,文件簽名是一個位于文件開頭的唯一識別號。這個數字標識文件的類型,提供有關實際文件中包含的數據的信息。當文件擴展名或用戶錯誤將文件錯誤地標識為不正確的類型時,此信息可用于確定正在讀取的文件類型。文件簽名還可以包含確保存儲在文件中的原始數據仍保持不變的信息完整且未被修改。這些元素的組合允許文件簽名作為一種重要的驗證形式,尤其是針對計算機病毒。

文件簽名可以包含確保存儲在文件中的原始數據仍然完整且未被修改的信息。
文件簽名的概念出現是因為需要文件頭,文件頭是文件開頭的一塊數據,它定義了信息在文件中的存儲方式的參數。頭信息的一部分是字節序列,它定義了最初創建的文件類型。這可以是一個圖像文件,當文件流用作客戶機和服務器之間的通信方法時,來自特定程序或協議類型的一種文件。文件頭不使用定義的標準,而是每種不同格式的專用文件,這意味著程序或操作系統需要一個文件簽名數據庫來確定文件類型未知文件。
實際的文件簽名有時被稱為幻數。在編程中,這是它所占用的數據字段中唯一的值當查看文件頭以確定文件類型時,這意味著沒有兩個文件簽名是相同的,允許每種類型的格式都有一個不同的標識字節字符串。這在處理聯機文件的傳輸和解釋時特別有用,在這種情況下,文件的標識擴展名可以是任意的,并且不能作為文件類型的標識符。
除了文件類型之外,文件簽名還可以包含允許對文件執行錯誤檢查的信息,以便可以確認它所保存的數據是完整的。通常會執行這種操作使用一個稱為校驗和的函數。校驗和是一個函數,它使用文件數據的整數值來創建數學值,這些值可以在文件傳輸或加載后復制。在最基本的形式中,這個過程包括在文件中添加一系列字節的值,然后記錄總和,允許對文件進行解碼的程序執行相同的功能。如果解碼過程中結果不同,則文件可能已損壞,數據可能無效或已被惡意修改。