简介:Hash算法是一种将任意长度的输入(又叫做预映射pre-image)通过散列算法变换成固定长度的输出的过程。这种转换是一种压缩映射,散列值的空间通常远小于输入的空间。不同的输入可能会散列成相同的输出,所以不可能从散列值来确定唯一的输入值。
Hash,一般翻译做散列、杂凑,或音译为哈希,是把任意长度的输入(又叫做预映射pre-image)通过散列算法变换成固定长度的输出,该输出就是散列值。这种转换是一种压缩映射,也就是,散列值的空间通常远小于输入的空间。不同的输入可能会散列成相同的输出,所以不可能从散列值来确定唯一的输入值。简单的说就是一种将任意长度的消息压缩到某一固定长度的消息摘要的函数。
Hash的主要原理是把大范围映射到小范围,所以,你输入的实际值的个数必须和小范围相当或者比它更小。不然冲突就会非常多。另外,因为Hash逼近单向函数,所以,可以用它来对数据进行加密。
不同的应用对Hash函数有着不同的要求。比如用于加密的Hash函数主要考虑它和单项函数的差距,而用于查找的Hash函数主要考虑它映射到小范围的冲突率。
以上内容仅供参考,如需更多信息,建议查阅相关文献或咨询专业计算机技术人员。