打印本文 打印本文  关闭窗口 关闭窗口  
泥客百科:哈希值
时间:2012/9/6 22:08:19

哈希算法将任意长度的二进制值映射为固定长度的较小二进制值,这个小的二进制值称为哈希值。哈希值是一段数据唯一且极其紧凑的数值表示形式。如果散列一段明文而且哪怕只更改该段落的一个字母,随后的哈希都将产生不同的值。要找到散列为同一个值的两个不同的输入,在计算上是不可能的。

消息身份验证代码 (MAC) 哈希函数通常与数字签名一起用于对数据进行签名,而消息检测代码 (MDC) 哈希函数则用于数据完整性。

示例

小红和小明可按下面的方式使用哈希函数以确保数据完整性: 如果小红对小明编写一条消息并创建该消息的哈希,则小明可以在稍后散列该消息并将他的哈希与原始哈希进行比较。如果两个哈希值相同,则该消息没有被更改;但是,如果值不相同,则该消息在小红编写它之后已被更改。为了使此系统运行,小红必须对除小明外的所有人保密原始的哈希值。  

哈希值在电驴(eMule)中的应用

HASH是根据文件的内容的数据通过逻辑运算得到的数值,不同的文件(即使是相同的文件名)得到的HASH值是不同的,所以HASH值就成了每一个文件在电驴(eMule)里的身份证。

不同HASH值的文件在电驴(eMule)里被认为是不同的文件,相同的HASH值的文件的内容肯定是完全相同(即使文件名不同)。

HASH值还有文件校验的功能,相当于文件的校验码,所以还可以用来检查文件下载是否正确(所以电驴(eMule)下载完毕时,都会再HASH文件一遍,检查文件是否出错)。