在计算机程序设计中,文件签名是一个位于文件开头的唯一识别号。这个数字标识文件的类型,提供有关实际文件中包含的数据的信息。当文件扩展名或用户错误将文件错误地标识为不正确的类型时,此信息可用于确定正在读取的文件...
在计算机程序设计中,文件签名是一个位于文件开头的唯一识别号。这个数字标识文件的类型,提供有关实际文件中包含的数据的信息。当文件扩展名或用户错误将文件错误地标识为不正确的类型时,此信息可用于确定正在读取的文件类型。文件签名还可以包含确保存储在文件中的原始数据仍保持不变的信息完整且未被修改。这些元素的组合允许文件签名作为一种重要的验证形式,尤其是针对计算机病毒。

文件签名可以包含确保存储在文件中的原始数据仍然完整且未被修改的信息。
文件签名的概念出现是因为需要文件头,文件头是文件开头的一块数据,它定义了信息在文件中的存储方式的参数。头信息的一部分是字节序列,它定义了最初创建的文件类型。这可以是一个图像文件,当文件流用作客户机和服务器之间的通信方法时,来自特定程序或协议类型的一种文件。文件头不使用定义的标准,而是每种不同格式的专用文件,这意味着程序或操作系统需要一个文件签名数据库来确定文件类型未知文件。
实际的文件签名有时被称为幻数。在编程中,这是它所占用的数据字段中唯一的值当查看文件头以确定文件类型时,这意味着没有两个文件签名是相同的,允许每种类型的格式都有一个不同的标识字节字符串。这在处理联机文件的传输和解释时特别有用,在这种情况下,文件的标识扩展名可以是任意的,并且不能作为文件类型的标识符。
除了文件类型之外,文件签名还可以包含允许对文件执行错误检查的信息,以便可以确认它所保存的数据是完整的。通常会执行这种操作使用一个称为校验和的函数。校验和是一个函数,它使用文件数据的整数值来创建数学值,这些值可以在文件传输或加载后复制。在最基本的形式中,这个过程包括在文件中添加一系列字节的值,然后记录总和,允许对文件进行解码的程序执行相同的功能。如果解码过程中结果不同,则文件可能已损坏,数据可能无效或已被恶意修改。