哈希值是什么意思?哈希算法
2024-12-10 16:07:03
哈希值是什么意思?
我们可以简单认为哈希值就是将“账页信息”进行哈希算法,计算得到一串字符密码,那么哈希算法就是区块链保证交易信息不被篡改的单向密码机制。哈希算法在接收一段明文(也就是账页信息)后,以一种不可逆的方式将其转化为一段长度较短、位数固定的散列数据。它有两个特点:1.加密过程不可逆,也就是说我们无法通过输出的散列数据倒推原本的明文是什么。可以这样理解:小明对火星人说了一段话,火星人将这段话翻译成了%*……¥&&%%@,地球人没有一个人能将%*……¥&&%%@翻译出来,这样就保证了谁也不能篡改小明的那段话了。2.输入的明文与输出的散列数据一一对应,任何一个输入信息的变化,都必将导致最终输出的散列数据的变化,这意味着这篇账页就算改了一个标点符号也会被发现,区块链这个账簿就将不承认这篇账页了。那么,什么叫哈希算法呢?哈希算法是一种加密算法哈希函数(HashFunction),也称为散列函数或杂凑函数。哈希函数是一个公开函数,可以将任意长度的消息M,映射成为一个长度较短且长度固定的值H(M),称H(M)为哈希值、散列值(HashValue)、杂凑值或者消息摘要(MessageDigest)。它是一种单向密码体制,即一个从明文到密文的不可逆映射,只有加密过程,没有解密过程。它的函数表达式为: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位(比特串也没有跑出周易的64卦)。于是你通常看到的哈希值,就是这样的了:00740f40257a13bf03b40f54a9fe398c79a664bb21cfa2870ab07888b21eeba8。这是从btc.com上随便拷贝的一个哈希值,不放心的话你可以数一下,是不是64位~Hash函数的特点哈希(Hash)函数具有如下特点。易压缩:对于任意大小的输入x,Hash值的长度很小,在实际应用中,函数H产生的Hash值,其长度是固定的。易计算:对于任意给定的消息,计算其Hash值比较容易。单向性:对于给定的Hash值,要找到使得在解算上是不可行的,即求得Hash的逆向解算,很困难。在给定某个哈希函数H和哈希值H(M)的情况下,你想得出M,这在计算上是不可行的。即从哈希输出无法倒推输入的原始数值。这是哈希函数安全性的基础。抗碰撞性:理想的Hash函数是无碰撞的,但在实际算法的设计中很难做到这一点。有两种抗碰撞性:一种是弱抗碰撞性,即对于给定的消息,要发现另一个消息,满足在计算上是不可行的;另一种是强抗碰撞性,即对于任意一对不同的消息,使得在计算上也是不可行的。高灵敏性:这是从比特位角度出发的,指的是1比特位的输入变化会造成1/2的比特位发生变化。消息M的任何改变都会导致哈希值H(M)发生改变。即如果输入有微小不同,哈希运算后的输出一定不同
我们可以简单认为哈希值就是将“账页信息”进行哈希算法,计算得到一串字符密码,那么哈希算法就是区块链保证交易信息不被篡改的单向密码机制。哈希算法在接收一段明文(也就是账页信息)后,以一种不可逆的方式将其转化为一段长度较短、位数固定的散列数据。它有两个特点:1.加密过程不可逆,也就是说我们无法通过输出的散列数据倒推原本的明文是什么。可以这样理解:小明对火星人说了一段话,火星人将这段话翻译成了%*……¥&&%%@,地球人没有一个人能将%*……¥&&%%@翻译出来,这样就保证了谁也不能篡改小明的那段话了。2.输入的明文与输出的散列数据一一对应,任何一个输入信息的变化,都必将导致最终输出的散列数据的变化,这意味着这篇账页就算改了一个标点符号也会被发现,区块链这个账簿就将不承认这篇账页了。那么,什么叫哈希算法呢?哈希算法是一种加密算法哈希函数(HashFunction),也称为散列函数或杂凑函数。哈希函数是一个公开函数,可以将任意长度的消息M,映射成为一个长度较短且长度固定的值H(M),称H(M)为哈希值、散列值(HashValue)、杂凑值或者消息摘要(MessageDigest)。它是一种单向密码体制,即一个从明文到密文的不可逆映射,只有加密过程,没有解密过程。它的函数表达式为: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位(比特串也没有跑出周易的64卦)。于是你通常看到的哈希值,就是这样的了:00740f40257a13bf03b40f54a9fe398c79a664bb21cfa2870ab07888b21eeba8。这是从btc.com上随便拷贝的一个哈希值,不放心的话你可以数一下,是不是64位~Hash函数的特点哈希(Hash)函数具有如下特点。易压缩:对于任意大小的输入x,Hash值的长度很小,在实际应用中,函数H产生的Hash值,其长度是固定的。易计算:对于任意给定的消息,计算其Hash值比较容易。单向性:对于给定的Hash值,要找到使得在解算上是不可行的,即求得Hash的逆向解算,很困难。在给定某个哈希函数H和哈希值H(M)的情况下,你想得出M,这在计算上是不可行的。即从哈希输出无法倒推输入的原始数值。这是哈希函数安全性的基础。抗碰撞性:理想的Hash函数是无碰撞的,但在实际算法的设计中很难做到这一点。有两种抗碰撞性:一种是弱抗碰撞性,即对于给定的消息,要发现另一个消息,满足在计算上是不可行的;另一种是强抗碰撞性,即对于任意一对不同的消息,使得在计算上也是不可行的。高灵敏性:这是从比特位角度出发的,指的是1比特位的输入变化会造成1/2的比特位发生变化。消息M的任何改变都会导致哈希值H(M)发生改变。即如果输入有微小不同,哈希运算后的输出一定不同
其他文章
- 内地人购买香港医疗保险怎么买,购买香港医疗保险需要多少钱
- 香港医疗保险有什么保障
- 百万医疗消费险怎么买呢,消费型百万医疗多少钱一年
- 香港户口买医疗保险怎么买
- 平安百万医疗保险怎么买呢
- 医疗保险的保障有哪些,报销需要多长时间
- 理财保险有必要买吗
- 香港的理财保险有什么好处才好呢
- 在香港买友邦分红保险需要准备哪些证件
- 企业年金和养老保险可以一起买吗,的好处有哪些呢
- 香港幼儿理财保险有哪些风险
- 在合众人寿买年金保险有什么保障,需要交多少钱呢
- 国寿鑫年金保险能取出多少钱,多久到账
- 香港人寿保险理财险怎么买
- 香港保险理财的好处有哪些,购买需要注意什么
- 香港aia理财保险要多少钱呢
- 香港理财型保险怎么买呢,要交多少钱
- 香港保险理财值得买吗,要怎么投保呢
- 48岁男士买香港养老保险需要多少钱
- 平安保险年金要如何投保呢
- 中国银行jcb信用卡申请攻略
- 哪个行的白金卡容易申请,这几款不容错过
- 招商银行信用卡大盘点
- 万金油战术让你轻松解决各种问题
- 建设银行信用卡中心电话多少
- 渣打银行信用卡网银如何登陆,渣打银行信用卡网银登陆方法
- 详解招商银行信用卡分期手续费及费率
- 兴业银行理财卡介绍:功能、办理条件、年费
- 工行信使服务是什么?
- 招行临时额度分期后果严重吗?说说你不知道的严重后果!