商学院首页 > 比特币进阶(一) > 到底什么是哈希Hash?

到底什么是哈希Hash?

发布时间:2020-01-20 14:11作者:博客园信息来源:博客园阅读数:220栏目:比特币进阶(一)

但凡是从事过计算机行业的人,多多少少都会听说过这个概念,但是又对其很模糊,那么到底什么是Hash呢?

定义

Hash一般翻译为散列,还有音译为哈希,本文我们统称为哈希(这么叫好听,哈希=散列),通过百度以及谷歌都没有直接找到Hash的定义,而是找到了一些相关的概念,哈希算法,哈希函数,哈希表等概念。

我所理解的哈希是指一个过程,这个过程就是把任意长度的输入,通过哈希算法,变换成固定长度的输出,所输出的称为哈希值。这种变换是一种压缩映射,也即哈希值所占的空间一般来说远小于输入值的空间,不同的输入可能会哈希出相同的输出(概率很小)。

哈希函数、算法

哈希算法将任意长度的二进制值映射为较短的固定长度的二进制值,这个小的二进制值称为哈希值。哈希值是一段数据唯一且极其紧凑的数值表示形式。如果散列一段明文而且哪怕只更改该段落的一个字母,随后的哈希都将产生不同的值。要找到散列为同一个值的两个不同的输入,在计算上是不可能的,所以数据的哈希值可以检验数据的完整性。一般用于快速查找和加密算法 ---《数据结构与算法分析》

 

哈希表

 

散列表(Hash table,也叫哈希表),是根据关键码值(Key value)而直接进行访问的数据结构。也就是说,它通过把关键码值映射到表中一个位置来访问记录,以加快查找的速度。这个映射函数叫做散列函数,存放记录的数组叫做散列表。

 

特点

 

如果两个哈希值是不相同的(根据同一函数),那么这两个散列值的原始输入一定是不相同的。

如果两个哈希值相同,两个输入值很可能(极大概率)是相同的,但也可能不同,这种情况称为“哈希碰撞”

抗篡改能力:对于一个数据块,哪怕只改动其一个比特位,其hash值的改动也会非常大。

它是一种单向函数是“非对称”的,即它是一个从明文到密文的不可逆的映射,只有加密过程,没有解密过程。

 

比特币:https://peixun.btcmoney.cc/post/65d328ecb03c5984

关键字: btc
免责声明:作为区块链信息平台,本站所提供的资讯信息不代表任何投资暗示,本站所发布文章仅代表个人观点,与比特财经网官方立场无关。投资有风险,入市须谨慎。

2019-2020 Copyright © 比特财经商学院 版权所有