暂无图片
暂无图片
暂无图片
暂无图片
暂无图片

介绍区块链中加密技术-Hash函数

代码论道 2018-07-04
899

什么是Hash函数

hash函数是一种算法,将任意长度的二进制数据映射为固定长度的二进制数据。

hash函数特点

确定性

  对同一个输入数据,无论用hash函数重复计算多少次,每次都会得到相同的结果。

单向性

很轻松的对已知数据进行hash计算,得到hash值,但是通过哈希值返推已知的数据却非常困难。

这就意味着,即使有黑客攻破了服务器,得到了你账户密码的哈希摘要,他也没有办法通过这个摘要获得你的真实帐号和密码。就是因为哈希函数的不可逆性。

隐秘性

在已知哈希值的情况下,没有可行的办法算出hash函数的输入值。

抗篡改

 对一个数据块,哪怕只改动其中一个bit位,其哈希值的改动非常大。

  区块链中主要使用该特性保证数据的不可篡改性。

抗碰撞

  对任何两个不同的数据块,其哈希值相同的可能性极小,对一个给定的数据块,找到与它哈希值相同的数据块极为困难。

hash函数的实现

 1.MD系列

 2.SHA系列,推荐SHA256,SHA3

  MD系列中最常用的是MD5,但是由于MD5的弱点被不断发现,以及计算机能力的不断提升,现在用两个不同的输入值构造一个相同的MD5哈希值已经不是特别困难的事情,因此,不在推荐在安全性较高的场景中使用MD5。取而代之的是SHA系列。

   SHA系列包括SHA0、SHA1、SHA2、SHA3,其中SHA0\SHA1也被证明不够安全,推荐使用SHA256和SHA3相关算法。

go语言中实现hash函数代码如下:


文章转载自代码论道,如果涉嫌侵权,请发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。

评论