哈希算法函数的定义描述及其特征介绍

电子说

1.3w人已加入

描述

哈希的本质是一个采用哈希算法的数学函数,它被广泛应用于区块链中构建区块以及确认交易信息的完整性上。

什么是哈希算法?哈希算法是密码学中的一个重要算法,哈希的英文为Hash。

哈希算法有一个输入和一个输出,其输入称为消息,输出值是根据消息内容计算出的值,称为哈希值(又或称为摘要)

哈希算法函数的定义描述:

(1)输入消息长度任意

(2)输出哈希值长度固定

简单的理解,就是一串任意长的数据经过哈希函数的计算后,生成一串长度固定的短数据。

当今区块链技术中大量使用的哈希算法函数是SHA-256。SHA-256是SHA-2算法家族中的一种,SHA全称是安全哈希算法(Secure Hash Algorithm)。SHA-256的输入消息长度为任意位数,其输出的哈希值长度固定为二进制的256位。SHA-256具备密码哈希函数的基本特性

哈希函数有三个重要的特征。

第一,哈希的单向性、就是我们只能够把任意长度的数据,通过哈希函数生成一个固定长度的哈希值,反过来却不可能通过这个哈希值再推导出原来的输入数据,这就是哈希的单向性。

很多人好奇区块链是怎么形成的,简单理解,区块链=区块+链。例如我们把一个区块打包以后就会通过哈希函数计算出一个哈希值,这个值就会存放到下一个区块中,下一个区块里的哈希值就把上一个区块给锁定了,这就是哈希锁定。区块链的不可更改就是从这里来的,因为如果你把前面的区块数据篡改了,那和后面区块里的哈希值,就不能够对应了。在区块链中,每一个区块都对上一个区块进行内容锁定,这就是哈希锁定。

第二,哈希的唯一性。我们把一个任意长的数据通过哈希函数生成一个哈希值,生成的这个哈希值是唯一的。不会存在两个不同的输入生成的哈希值相同的这种情况。但是这句话是有问题的,为什么呢?你把任意长数据变成短数据,或者说你把大的文件变成一个短的哈希值,在科学上它是有一定的概率会形成相同的哈希值的,只是这个概率极低极低,到目前为止,采用SHA256算法的哈希函数还没有发生过相同哈希值的碰撞事件,所以说哈希的唯一性,就是这么来的。

第三,哈希的离散性。离散性是什么意思呢,就是两个非常相近的文件,或者说两个只相差一位数的数据,计算出来的两个哈希值却是天壤之别,是没有任何相似的地方的,这就是哈希的离散性。这个特性有效地规避了一些特定的攻击,如果两个文件只相差那么一丢丢,他计算出来的哈希值也很相近的话,是很容易遭受到攻击的。以上所述是哈希的三个重要特征。

审核编辑:符乾江

打开APP阅读更多精彩内容
声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉

全部0条评论

快来发表一下你的评论吧 !

×
20
完善资料,
赚取积分