哈希是啥,谁能解释一下?

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了哈希是啥,谁能解释一下?相关的知识,希望对你有一定的参考价值。

哈希音译自“Hash”,又名为“散列”。本质上是一种计算机程序,可接收任意长度的信心输入,然后通过哈希算法,创建小的数字“指纹”的方式。
例如数字与字母的结合,输出的就为“哈希值”。从数学术语上说,就是这个哈希函数,是将任意长度的数据,映射在有限长度的域上。总体而言,哈希函数用于,将消息或数据压缩,生成数据摘要,最终使数据量变小,并拥有固定格式。
那么哈希算法的作用又是什么呢?
(1) 在庞大的数据库中,由于哈希值更为短小,被找到更为容易,因此,哈希使数据的存储与查询速度更快。
(2) 哈希能对信息进行加密处理,使得数据传播更为安全。
哈希算法解决了什么生活问题?
看似深奥的数学函数,又或是计算机程序的哈希算法,其实跟我们的生活息息相关。就拿每年双十一的快递来说,实际上,哈希算法原理提高了快递入库出库的速度。
参考技术A 你好,哈希的英文是Hash,中文可翻译成散列或者哈希,它其实就是一个算法,最简单的算法就是加减乘除,比方,我设计个数字算法,输入+5=输出,比如我输入1,输出为6;输入2,输出为7。
哈希算法不过是一个更为复杂的运算,它的输入可以是字符串,可以是数据,可以是任何文件,经过哈希运算后,变成一个固定长度的输出,该输出就是哈希值。但是哈希算法有一个很大的特点,就是你不能从结果推算出输入。
比如我们从服务器下载一个软件,如果这个软件被黑客更改了,那么我们下载的就不是原来的软件,如果是银行客户端可能就会有账户被盗的风险,但是有了哈希运算后,我们可以把下载的软件经过哈希运算后得到哈希值,然后把哈希值跟软件发行方公布的哈希值对比,就知道软件是否有被篡改了。同样比如我们登陆网站的密码也是一个很好的哈希运用,网站服务器如果读取的是我们的密码,那不是很危险吗,有了哈希,服务器只用匹配哈希就可以了,而不用读取我们的隐私。
参考技术B

Hash一般称为哈希或散列函数,是把任意长度的输入通过散列算法变换成固定长度的输出,该输出就是散列值。这种转换是一种压缩映射,也就是,散列值的空间通常远小于输入的空间,不同的输入可能会散列成相同的输出,所以不可能从散列值来确定唯一的输入值。简单的说就是一种将任意长度的消息压缩到某一固定长度的消息摘要的函数。

参考技术C 哈希其实就是一种特殊的函数,不论输入多长的一串字符,只要通过这个函数都可以得到一个固定长度的输出值。现在很火的哈希游戏就是从这个哈希算法诞生的,我在Ν3hαsh.соm这里玩过,感觉还挺好玩的,你也可以去看看。

以上是关于哈希是啥,谁能解释一下?的主要内容,如果未能解决你的问题,请参考以下文章

谁能告诉我哈希是啥?

关于 JSON 的哈希到底是啥?

字典和哈希表之间的主要区别是啥

std::map 的底层结构是啥? [关闭]

ASP.NET 成员使用的默认哈希算法是啥?

谁能解释一下“?currentPosition+1 : currentPosition-1;”是啥意思[复制]