前言:在IT领域和计算机科学里,我们经常会遇到诸如hash函数(hash算法),hash表,hash碰撞。
一:HASH
1.1 作为名词(n) : (回锅) 肉丁土豆; #号;...含义
1.2 作为动词(v):反复推敲; 仔细考虑; 把……弄糟(乱); 斩碎; 斩(肉); 剁(肉); 细切(肉);
1.3
二:简介
在计算机科学里,常把hash做作为动词--散列、杂凑含义理解,即把任意长度的输入(又叫做预映射pre-image)通过散列算法变换成固定长度的输出,该输出就是散列值。这种转换是一种压缩映射,也就是,散列值的空间通常远小于输入的空间,不同的输入可能会散列成相同的输出,所以不可能从散列值来确定唯一的输入值。简单的说就是一种将任意长度的消息压缩到某一固定长度的消息摘要的函数。
三:hash算法
Hash算法可以将一个数据转换为一个标志,这个标志和源数据的每一个字节都有十分紧密的关系。Hash算法还具有一个特点,就是很难找到逆向规律。
Hash算法也被称为散列算法,Hash算法虽然被称为算法,但实际上它更像是一种思想。Hash算法没有一个固定的公式,只要符合散列思想的算法都可以被称为是Hash算法。
四:相关概念(数学模型)
若结构中存在和关键字K相等的记录,则必定在f(K)的存储位置上。由此,不需比较便可直接取得所查记录。称这个对应关系f为散列函数(Hash function),按这个事先建立的表为散列表。对不同的关键字可能得到同一散列地址,即key1≠key2,而f(key1)=f(key2),这种现象称碰撞。
备注:即hash函数,hash表和hash碰撞