Hash、Hash算法、Hash函数、Hash值、Hash码、Hash表,它们的意思?

Hash、Hash算法、Hash函数、Hash值、Hash码、Hash表,它们的意思?

哈希 是密码学的基础,理解哈希是理解 数字签名和加密通信等技术的必要前提。

哈希函数,是某一种哈希算法的实现。(提前告诉你们,怕下面文字介绍听不懂)

一、Hash的定义?

Hash:一般翻译做散列,或音译为哈希。(可能这么叫好听,Hash=哈希=散列,下文可自己替换后理解)

是把任意长度的输入通过哈希算法变换成固定长度的输出,

该输出就是哈希值(也称为:哈希码)。

二、Hash算法( 哈希算法 / 散列算法)?

定义:

将任意长度的二进制值串 映射 为固定长度的二进制值串,

这个映射的规则就是哈希算法,

而通过原始数据映射之后得到的值就是哈希值(也称为:哈希码)。

使用哈希算法优点:

提高存储空间的利用率,

可以提高数据的查询效率,

也可以做数字签名来保障数据传递的安全性。

还具有一个特点,就是很难找到逆向规律。

拓展

上面讲的映射规则,这种转换是一种压缩映射,

也就是,输出的哈希值的空间通常远小于输入的空间,不同的输入可能会散列成相同的输出,所以不可能从哈希值来确定唯一的输入值。简单的说就是一种将任意长度的消息压缩到某一固定长度的消息摘要的函数。

三、 Hash函数(散列函数)?

定义:

哈希算法有很多中实现方式。编程语言中,如果一个函数实现了哈希算法的话,这个函数就是哈希函数。

所以说:哈希函数,是某一种哈希算法的实现。

四、 Hash值(哈希值 / 哈希码)?

定义:

哈希函数的运算结果就是哈希值(专业术语叫:哈希码)。

五、 Hash码(HashCode)

定义:

哈希函数的运算结果就是哈希值(专业术语叫:哈希码)。

六、 Hash表(哈希表 / Hash Table)

定义:

举例,数据源A经过哈希算法后,得到哈希值B,

存储A->B这样对应关系的叫做哈希表。

七、术语总结

下面我用数学的角度来解释下。

用数学来讲y=f(x),

y就是哈希值/哈希码,哈希算法就是f,哈希函数就是f(x),

x就是就是传入的参数变量,通常是字符串。

下面我用通俗的角度来解释下。

A--->function()---> B

源数据A经过function()的运算得到B。

这里的function()就是哈希函数,它是某一种哈希算法的实现(说明了什么:哈希函数是哈希算法的实现,他们是不同的)。

得到的数据B就是哈希码(常称为:哈希值)。

如果我们将A->B这样的的关系保存下来,存储这个对应关系的我们称为哈希表。

八、Hash特点

如果两个哈希值是不相同的(根据同一函数),那么这两个散列值的原始输入一定是不相同的。如果两个哈希值相同,两个输入值很可能(极大概率)是相同的,但也可能不同,这种情况称为“哈希碰撞”。(我会在其他地方介绍到它)抗篡改能力:对于一个数据块,哪怕只改动其一个比特位,其hash值的改动也会非常大。它是一种单向函数是“非对称”的,即它是一个从明文到密文的不可逆的映射,只有加密过程,没有解密过程。

相关推荐

小米怎么和计算机连接网络连接网络,电脑怎么连接小米路由器上网
10公里等于多少千米
足球比分365

10公里等于多少千米

📅 09-04 👁️ 7058
最好玩的良心挂机放置类手游合集
足球比分365

最好玩的良心挂机放置类手游合集

📅 07-28 👁️ 3974