什么是哈希值?
哈希值,是一种从任何一种数据中创建小的数字“指纹”的方法。哈希值把消息或数据压缩成摘要,使得数据量变小,将数据的格式固定下来。该函数将数据打乱混合,重新创建一个叫做散列值(hash values,hash codes,hash sums,或hashes)的指纹。
散列值通常用一个短的随机字母和数字组成的字符串来代表。好的哈希值在输入域中很少出现散列冲突。在散列表和数据处理中,不抑制冲突来区别数据,会使得数据库记录更难找到。
典型的哈希值都有非常大的定义域,比如SHA-2最高接受(2-1)/8长度的字节字符串。同时哈希值一定有着有限的值域,比如固定长度的比特串。在某些情况下,哈希值可以设计成具有相同大小的定义域和值域间的单射。哈希值必须具有不可逆性。
哈希值有什么用?
哈希值,即HASH值,是通过对文件内容进行加密运算得到的一组二进制值,主要用途是用于文件校验或签名。正是因为这样的特点,它常常用来判断两个文件是否相同。
比如,从网络上下载某个文件,只要把这个文件原来的哈希值同下载后得到的文件的哈希值进行对比,如果相同,则表示两个文件完全一致,下载过程没有损坏文件。而如果不一致,则表明下载得到的文件跟原来的文件不同,文件在下载过程中受到了损坏。