哈希算法的概念与计算方法简介

OKX欧易app

OKX欧易app

欧易交易所app是全球排名第一的虚拟货币交易所,注册领取6万元盲盒礼包!

APP下载   官网注册

在谈到区块链的时候,经常会听到关于哈希、哈希值、哈希算法这些词。很多人都认为哈希就是区块链上的安全保障,但是严格来说,哈希并不是一种加密算法。因为加密总是相对于解密而言,哈希其实是一种单向密码体制,即它是一个从明文到密文的不可逆的映射,只有加密过程,没有解密过程。

在聊哈希算法之前我们先来聊聊什么是哈希。

什么是哈希/Hash

哈希又称作“散列”,是一种数学计算机程序,它接收任何一组任意长度的输入信息,通过哈希算法变换成固定长度的数据指纹输出形式,如字母和数字的组合,该输出就是“哈希值”。

总体而言,哈希算法可理解为一种消息摘要算法,将消息或数据压缩变小并拥有固定格式。由于其单向运算具有一定的不可逆性,哈希算法已成为加密算法中一个构成部分,但完整的加密机制不能仅依赖哈希算法。

关于不可逆,简单理解就像1+4=5和2+3=5一样,即便你知道结果是5,仍得不出输入的是什么数字。

(图源网络,侵删)

常见哈希算法

目前常见的Hash算法包括国际上的MessageDigest(MD)系列和SecureHashAlgorithm(SHA)系列算法,以及国内的SM3算法。

其中,SHA256是SHA系列算法之一,由美国国安局设计、美国国家标准与技术研究院发布的一套哈希算法,由于其摘要长度为256bits,故称SHA256。SHA256也是保护数字信息的最安全的方法之一。

例如计算“helloblockchainworld,thisisyeasy@github”的SHA-256Hash值,得到的结果将是“db8305d71a9f2f90a3e118a9b49a4c381d2b80cf7bcef81930f30ab1832a3c90”。

对于某个文件,无需查看原始内容,只要其SHA-256Hash计算后结果相同,则说明该文件内容极大概率就是一样的。

哈希算法的作用又是什么呢?

看似深奥的数学函数,哈希算法其实跟我们的生活息息相关。

比如早期,我们在传输信息时,由于信道不安全可能会出现信息错乱,那么接收方如何有效判断信息的一致性,来回多次传送确认是效率极低的一种方式。如果利用哈希算法则可很好地解决这一难题。当A在发出信息时,可对原文进行哈希运算,并将运算出来的哈希值附在文本之后用来校验。这样B在收到信息后,可对原文同样进行哈希运算,通过对比哈希值来判断传送和接收信息的一致性。

哈希算法也是区块链中用的最多的一种算法,它被广泛的使用在构建区块和确认交易的完整性上。例如在比特币中,使用哈希算法把交易生成数据摘要,当前区块里面包含上一个区块的哈希值,后面一个区块又包含当前区块的哈希值,就这样一个接一个的连接起来,形成一个不可逆向篡改的链表。

哈希算法的特征

除了快速对比内容外,Hash思想也经常被应用到基于内容的编址或命名算法中。一个优秀的Hash算法,将能满足:

正向快速:给定原文和Hash算法,在有限时间和有限资源内能计算得到Hash值;

逆向困难:给定Hash值,在有限时间内无法(基本不可能)逆推出原文,这也是哈希安全性的基础;

输入敏感:原始输入信息发生任何改变,新产生的Hash值都应该发生很大变化;

避免碰撞:很难找到两段内容不同的明文,使得它们的Hash值一致(即发生碰撞)。

可以看出,哈希算法因能快速验证、并防止数据或交易在传递过程中被篡改,在网络数据和区块链技术应用中有着重大作用,也是理解区块链为何具备安全可信特征的重要因素。

想要了解更多项目和最新热点文章,关注公众号/微博“必查客”,就可以找到组织了

本站所有软件信息均由用户上传发布,版权归原著所有。如有侵权/违规内容,敬请来信告知邮箱:764327034@qq.com,我们将及时撤销! 转载请注明出处:https://czxurui.com/zx/15644.html

打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023年07月13日
下一篇 2023年07月13日

相关推荐

发表回复

8206
验证码

评论列表(0条)

    暂无评论

ok交易所
已有100万用户加入ok交易所

立即下载