美文网首页
hash(哈希)算法

hash(哈希)算法

作者: th先生 | 来源:发表于2018-08-08 11:23 被阅读0次

本文出处转自https://www.sohu.com/a/232586831_100078137https://www.cnblogs.com/mengfanrong/p/4034950.html

哈希是一种加密算法

哈希函数(Hash Function),也称为散列函数或杂凑函数。哈希函数是一个公开函数,可以将任意长度的消息M映射成为一个长度较短且长度固定的值H(M),称H(M)为哈希值、散列值(Hash Value)、杂凑值或者消息摘要(Message Digest)。它是一种单向密码体制,即一个从明文到密文的不可逆映射,只有加密过程,没有解密过程。

散列表,它是基于高速存取的角度设计的,也是一种典型的“空间换时间”的做法。顾名思义,该数据结构能够理解为一个线性表,可是当中的元素不是紧密排列的,而是可能存在空隙。

散列表(Hash table,也叫哈希表),是依据关键码值(Key value)而直接进行訪问的数据结构。也就是说,它通过把关键码值映射到表中一个位置来訪问记录,以加快查找的速度。这个映射函数叫做散列函数,存放记录的数组叫做散列表

它的函数表达式为:h=H(m)

无论输入是什么数字格式、文件有多大,输出都是固定长度的比特串。以比特币使用的Sh256算法为例,无论输入是什么数据文件,输出就是256bit。

每个bit就是一位0或者1,256bit就是256个0或者1二进制数字串,用16进制数字表示的话,就是多少位呢?

16等于2的4次方,所以每一位16进制数字可以代表4位bit。那么,256位bit用16进制数字表示,当然是256除以4等于64位。

Hash函数具有如下特点。

1、易压缩:对于任意大小的输入x,Hash值的长度很小,在实际应用中,函数H产生的Hash值其长度是固定的。

2、易计算:对于任意给定的消息,计算其Hash值比较容易。

3、单向性:对于给定的Hash值,要找到使得在计算上是不可行的,即求Hash的逆很困难。在给定某个哈希函数H和哈希值H(M)的情况下,得出M在计算上是不可行的。即从哈希输出无法倒推输入的原始数值。这是哈希函数安全性的基础。

4、抗碰撞性:理想的Hash函数是无碰撞的,但在实际算法的设计中很难做到这一点。

有两种抗碰撞性:一种是弱抗碰撞性,即对于给定的消息,要发现另一个消息,满足在计算上是不可行的;另一种是强抗碰撞性,即对于任意一对不同的消息,使得在计算上也是不可行的。

5、高灵敏性:这是从比特位角度出发的,指的是1比特位的输入变化会造成1/2的比特位发生变化。消息M的任何改变都会导致哈希值H(M)发生改变。即如果输入有微小不同,哈希运算后的输出一定不同。

Hash算法在信息安全方面的应用主要体如今下面的3个方面:

(1) 文件校验
  我们比較熟悉的校验算法有奇偶校验和CRC校验,这2种校验并没有抗数据篡改的能力,它们一定程度上能检測并纠正传输数据中的信道误码,但却不能防止对数据的恶意破坏。

MD5 Hash算法的"数字指纹"特性,使它成为眼下应用最广泛的一种文件完整性校验和(Checksum)算法,不少Unix系统有提供计算md5 checksum的命令。

(2) 数字签名
  Hash 算法也是现代password体系中的一个重要组成部分。因为非对称算法的运算速度较慢,所以在数字签名协议中,单向散列函数扮演了一个重要的角色。 对 Hash 值,又称"数字摘要"进行数字签名,在统计上能够觉得与对文件本身进行数字签名是等效的。并且这种协议还有其它的长处。

(3) 鉴权协议
  例如以下的鉴权协议又被称作挑战--认证模式:在传输信道是可被侦听,但不可被篡改的情况下,这是一种简单而安全的方法。

相关文章

  • 哈希算法

    哈希算法 什么是hash函数?常见的hash算法hashlib的用法hash算法的用途 什么是hash函数? 哈希...

  • python之哈希算法

    哈希(Hash)算法:`hash(object)` 一,基本概念 哈希算法将一个不定长的输入,通过散列函数变换成一...

  • hash(哈希)算法

    本文出处转自https://www.sohu.com/a/232586831_100078137,https://...

  • 2.哈希加密 & base64加密

    一、哈希HASH 哈希(散列)函数MD5 SHA1/256/512 HMAC Hash的特点: 1.算法是公开...

  • 从0到1学习区块链5-密码学

    区块链中主要用到了哈希算法和非对称加密。1、哈希算法(hash)哈希算法是一种数学函数算法。又叫散列算法,他是一种...

  • 【Awesome EOS】从 Hash 到 Merkle Tre

    哈希算法(Hash) 哈希算法也叫散列算法,一般来说满足这样的关系:Func(data)=key,输入任意长度的 ...

  • [ 摘要 ] MD5 - 拿来校验软件篡改如何

    你好 哈希算法 哈希算法(Hash)又称摘要算法(Digest) 作用 对任意一组输入数据进行计算,得到一个固定长...

  • 哈希算法

    什么是哈希算法 了解哈希算法需要了解以下几个概念。 散列表(hash table) 与散列函数 散列表也叫哈希表是...

  • 哈希一致性算法

    传统hash算法 哈希一致性算法 https://segmentfault.com/a/1190000021199...

  • 哈希

    1.什么是哈希? 散列算法(Hash Algorithm),又称哈希算法,杂凑算法,是一种从任意文件中创造小的数字...

网友评论

      本文标题:hash(哈希)算法

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