美文网首页
什么是哈希

什么是哈希

作者: 一冠王 | 来源:发表于2020-02-07 19:55 被阅读0次

区块链技术在密码学中应用最多的就是哈希和非对称加密。那么今天我们就来说说什么是哈希

举个生活中最简单的例子:身份证号码。无论你是北京人、上海人、男人、女人或者胖子、瘦子,每个人的身份证号码都是18位而且全国唯一。同理,哈希是一种压缩映射,它可以把任意长度的输入变换成固定长度的输出。无论你身高是1米8还是1米6,无论你是超过200斤还是不到100斤,扔到哈希算法中输出的都是固定长度的18位数字。(需要注意,身份证号码生成的规则涉及到户口地区和出生日期,是一种拼凑算法并不是哈希算法)

由于哈希函数是将任意长度的消息压缩到某一固定长度,所以也称为消息摘要函数

了解完哈希的概念后,我们再了解一个概念:哈希碰撞。所谓碰撞,顾名思义就是莫名其妙地撞到一起去了。正常来说,每个人的身份证号是要求互不相同的,但是把两个不同的人作为输入扔进去得到了两个相同的输出,这就出现了碰撞。从公式上可以简单理解为:假定HASH为一种哈希函数,在x不等于y的情况下出现了HASH(x)=HASH(y),即发生了哈希碰撞。

现存的任何一种哈希算法在数学上都是无法证明不会发生碰撞的,那么唯一能避免发生碰撞的方法就是扩大输出空间,形如:全国身份证号码不再是18位,改成58位。

为什么要避免哈希碰撞?因为在区块链的世界中,任何一笔交易或者账户的地址都是完全依托于哈希算法生成的,其设计目的就是为了保证该交易或者账户地址在全网络的唯一性。无论我这笔转账转了多少钱或转给了多少个人或转给了谁,在账本中是唯一存在的。如果发生了哈希碰撞,试想一下两笔转账都生成了同样的哈希值,那当记账者或者是用户再用这个交易的哈希值来查询该交易时究竟要查到哪个呢?

所以在区块链世界中,哈希是用来保证目标物唯一性的,并且无法避免产生碰撞。唯一能做的是扩大输出空间,降低产生哈希碰撞的几率

相关文章

  • 什么是哈希

    我们先来讲个故事哈。 有一个人每次打开区块链文章,都意气风发,暗暗下决心要发愤图强,看了一会儿,发现很难看懂什么,...

  • 什么是哈希

    区块链技术在密码学中应用最多的就是哈希和非对称加密。那么今天我们就来说说什么是哈希。 举个生活中最简单的例子:身份...

  • 哈希表—什么是哈希表

    冰冻非一日之寒 哈希表是一种数据结构~ 基本概念 哈希表可以存储各种类型的数据,当我们从哈希表中查找所需要的数据时...

  • 计算文件哈希值

    什么是哈希值? 哈希值(hash values)是使用哈希函数(hash function)计算得到的值。哈希函数...

  • Java数据结构_哈希表_基本概念

    本文目标 哈希表的基本概念,哈希冲突,哈希函数 什么是哈希表 哈希表也叫做散列表(hash有剁碎的意思)哈希表是空...

  • 什么是哈希(Hash)

    在区块链的领域里,哈希算法可谓是被提到的最多的概念之一,很多人第一次听到这个概念也是因为区块链。 那到底什么是哈希...

  • 什么是哈希函数?

    哈希函数 Hash Function,也叫做「散列」、「杂凑」函数或者算法。理论上讲,哈希函数就是一种数学流程,将...

  • 什么是哈希表?

    我们在这篇文章将要学习最有用的数据结构之一—哈希表,哈希表的英文叫 Hash Table,也可以称为散列表或者 H...

  • 什么是哈希算法?

    转载:https://blog.csdn.net/xuhao885544/article/details/8475...

  • HASH表的原理和实现

    哈希表的原理 什么是哈希? 哈希相当于一个人的名字,可以通过名字可以找到这个人 什么是哈希碰撞? 假设一个班级里边...

网友评论

      本文标题:什么是哈希

      本文链接:https://www.haomeiwen.com/subject/zmevxhtx.html