在了解比特币投资和区块链技术中,哈希算法可以说经常出现,币圈戏言说唱有嘻哈,算法有哈希。关于“算法”一词,目前国内用户使用的比较模糊,有时指共识机制,有时指具体的Hash算法,作为区块链算法,哈希算法一直让普通大众感到晦涩难懂,那么,什么是哈希算法?接下来币小哥就来给大家通俗的讲解一下哈希算法是什么?希望能够让投资者看完本文就能读懂哈希算法。
什么是哈希算法?
哈希音译自“Hash”,又名为“散列”。本质上是一种计算机程序,可接收任意长度的信心输入,然后通过哈希算法,创建小的数字“指纹”的方式。例如数字与字母的结合,输出的就为“哈希值”。从数学术语上说,就是这个哈希函数,是将任意长度的数据,映射在有限长度的域上。总体而言,哈希函数用于,将消息或数据压缩,生成数据摘要,最终使数据量变小,并拥有固定格式。
哈希算法的特点
1.易压缩:对于任意大小的输入x,Hash值的长度很小,在实际应用中,函数H产生的Hash值其长度是固定的。
2.易计算:对于任意给定的消息,计算其Hash值比较容易。
3.单向性:对于给定的Hash值,要找到使得在计算上是不可行的,即求Hash的逆很困难。在给定某个哈希函数H和哈希值H(M)的情况下,得出M在计算上是不可行的。即从哈希输出无法倒推输入的原始数值。这是哈希函数安全性的基础。
4.抗碰撞性:理想的Hash函数是无碰撞的,但在实际算法的设计中很难做到这一点。
有两种抗碰撞性:一种是弱抗碰撞性,即对于给定的消息,要发现另一个消息,满足在计算上是不可行的;另一种是强抗碰撞性,即对于任意一对不同的消息,使得在计算上也是不可行的。
5.高灵敏性:这是从比特位角度出发的,指的是1比特位的输入变化会造成1/2的比特位发生变化。消息M的任何改变都会导致哈希值H(M)发生改变。即如果输入有微小不同,哈希运算后的输出一定不同。
哈希算法的用途:
哈希算法可以检验信息是否是相同的,这样的优势可以节省重复文件传送的时间。
举一个生活中很平常的例子,我们在生活工作中会使用一些软件给别人传送文件数据,如果有人传送了一份文件给一个人,然后又有一个人传送了相同的文件给了另外一个人,那么这个社交软件在第二次传送文件的时候会对比两次传送的哈希值,发现是相同的,该软件就不会再次上传文件给服务器了。
除此之外,哈希算法还可以检验信息的拥有者是否真实。
比如,我们在一个网站注册一个账号,如果网站把密码保存起来,那这个网站不论有多安全,也会有被盗取的风险。但是如果用保存密码的哈希值代替保存密码,就没有这个风险了,因为哈希值加密过程是不不可逆的。
通过以上介绍,相信大家对于哈希算法有所了解,简单来说利用哈希算法的防篡改性,用来验证信息的完整性哈希使得区块链上的人对现在的整体状态达成共识,在区块链中,哈希函数的抗碰撞性用来做区块和交易的完整性验证,一有篡改就能被识别出来。更多关于哈希算法相关内容可关注币圈子后续相关知识点介绍!