哈希算法——理解区块链的关键一环

民间常言:说唱有嘻哈,算法有哈希。”在了解比特币投资和区块链技术中,哈希算法作为常客”时常出现。但大多数朋友对它知之甚少,为它晦涩难懂的内涵所头疼。那么今天我们就来简单说说,什么是哈希算法”?

哈希音译自Hash”,又名为散列”。本质上是一种计算机程序,可接收任意长度的信心输入,然后通过哈希算法,创建小的数字指纹”的方式。例如数字与字母的结合,输出的就为哈希值”。从数学术语上说,就是这个哈希函数,是将任意长度的数据,映射在有限长度的域上。总体而言,哈希函数用于,将消息或数据压缩,生成数据摘要,最终使数据量变小,并拥有固定格式。

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

(1) 在庞大的数据库中,由于哈希值更为短小,被找到更为容易,因此,哈希使数据的存储与查询速度更快。

(2) 哈希能对信息进行加密处理,使得数据传播更为安全。

哈希算法解决了什么生活问题?

看似深奥的数学函数,又或是计算机程序的哈希算法,其实跟我们的生活息息相关。就拿每年双十一的快递来说,实际上,哈希算法原理提高了快递入库出库的速度。为什么呢?

双十一一过,到底剁手后,一定收快递收到手软,手机短信抖个不停。这个时间段,双十一快递员可能没时间挨家挨户送上门,而是选择往驿站一扔。当驿站将快递入库后,你的手机会收到这样一条信息——

【XX收快】您的XX快递已到(原菜鸟驿站)65号店取货吗A10-8-9856,请9点至21点取货,电话xxx-xxxxxxxx)

到底重点看看这个取货码:A10-8-9856。这可不是一堆乱码。这串数值,就是驿站员能快速找到你快递的关键。

A10指的是货架编码,8指的是第8层,9856指的是订单后四位。因此每个驿站小哥只需要瞄一眼,就能瞬间知道你的快递所在位了。

因此,哈希算法最核心的用处,就是高速存取。在区块链技术中,它才真正大展身手。以下是它在区块中的具体作用:

(1) 快速验证。只需要验证摘要,就能比较两个数据是否相等。

(2) 防止篡改。只需要传递数据的摘要即可传递该数据,并防止在传递过程中被篡改。

(3) 用于POW共识算法工作量证明。目前比特币和以太坊,都使用POW共识机制。

哈希算法有千千万万种,其中,安全哈希算法”(SHA
256)是保护数字信息,最安全的方式之一。它是由美国国安局设计、美国国家标准与技术研究院发布的一套哈希算法。其摘要长度是256bits,因此被称为SHA256”。它们都在网络数据和区块链技术应用中,有着重大作用,也是理解区块链的重要一环。

哈希是密码学的基础,理解哈希是理解数字签名和加密通信等技术的必要前提。

哈希,英文是 hash ,本来意思是”切碎并搅拌“,有一种食物就叫 Hash
,就是把食材切碎并搅拌一下做成的。哈希函数的运算结果就是哈希值,通常简称为哈希。哈希函数有时候也翻译做散列函数。

根据维基百科的定义,哈希函数要做的事情是给一个任意大小的数据生成出一个固定长度的数据,作为它的映射。所谓映射就是一一对应。一个可靠的哈希算法要满足三点。

第一是安全,给定数据 M 容易算出哈希值 X ,而给定 X 不能算出 M
,或者说哈希算法应该是一个单向算法。第二是独一无二,两个不同的数据,要拥有不相同的哈希。第三是长度固定,给定一种哈希算法,不管输入是多大的数据,输出长度都是固定的。

但是仔细想一下,如果哈希的长度是固定的,也就是取值范围是有限的,而输入数据的取值范围是无限的,所以总会找到两个不同的输入拥有相同的哈希。所以,哈希函数的安全性肯定是个相对概念。如果出现了两个不同输入有相同输出的情况,就叫碰撞,collision
。不同的哈希算法,哈希位数越多,也就基本意味着安全级别越高,或者说它的”抗碰撞性“就越好。

再来说说哈希函数的主要作用。哈希的独一无二性,保证了如果数据在存储或者传输过程中有丝毫损坏,那么它的哈希就会变。哈希函数的最常见的一个作用就是进行完整性校验(
Integrity Check ),完整的意思是数据无损坏。哈希有很多不同的称呼,有时候叫 Digest 摘要,有时候叫 Checksum 校验值,有时候叫
Fingerprint 指纹,其实说的意思差不多,也就是说哈希可以用来代表数据本身。

例如朋友给我传递一份数据,传完之后,我有一份,他手里也有一份,如果两份数据的哈希值是一样的,那么这两份数据的内容就是一样的,或者说可以认为传递过程中数据没有损坏,我手里拿到的数据是完整的。

所以说,哈希函数的基本作用就是给大数据算出一个摘要性的长度固定的字符串,也就是所谓的哈希。哈希的作用主要是进行完整性校验。

哈希算法的分类

下一步我们把哈希函数分类,更细致的聊聊哈希算法的特点。首先说哈希算法有很多种,例如 md5 ,sha256
等等,但是它们总体上可以分为两大类,一类是普通哈希,另外一类是加密哈希,cryptographic hash function 。

业界可以找到的哈希算法是有很多种的。我们可以大致按照输出的哈希的长度来聊,虽然哈希算法的安全性也不单单是跟哈希长度有关,但是一般哈希值越长也就是越安全。

例如 CRC-32 的输出是32 bit,也就是32位的二进制数,表示成十六进制就是8位。MD5
算法的哈希是32位16进制数,比较常见。SHA-256是256个 Bit
,十六进制表示就是64位。这些算法可以分成普通哈希和加密哈希算法,两种算法之间没有特别明显的区别。例如本来 MD5
就是设计出来做加密哈希的,但是后来由于计算机的发展 MD5 出现碰撞的可能性就很大了,所以目前 MD5 只能当普通哈希用,用来做数据校验。

加密哈希跟普通哈希的区别就是安全性,一般原则是只要一种哈希算法出现过碰撞,就会不被推荐成为加密哈希了,只有安全度高的哈希算法才能用作加密哈希。

同时加密哈希其实也能当普通哈希来用,Git 版本控制工具就是用 SHA-1
这个加密哈希算法来做完整性校验的。一般来讲越安全的哈希算法,处理速度也就越慢,所以并不是所有的场合都适合用加密哈希来替代普通哈希。

在密码学领域,有两个算法都是把数据做输入,而输出是一段谁也看不懂的数据。其中一个就是哈希算法,另外一个是加密算法。注意,哈希算法和加密算法是完全不同的。

首先哈希算法的输出长度是固定的,而加密算法的输出长度是跟数据本身长度直接相关的,第二,哈希是不可以逆向运算出数据的,而加密算法的输出是要能够逆向运算出数据的。关于加密算法,我们这里就不展开聊了。

这里主要是强调加密哈希算法只是被用在加密过程中,但是它本身不是加密算法。

总之,哈希算法有很多种,长度越长的算法基本认为越安全。安全度低的哈希算法被认为是普通哈希算法,主要用来做完整性校验。安全度高的被称为加密哈希算法,会被用在加密算法中。所谓的高低都是相对概念,例如
MD5 曾经属于加密哈希,但是目前只能用来做安全校验了。而从2017年开始,SHA-1 算法生成的加密证书也会被各大浏览器拒绝了。目前最流行的加密算法是
SHA-2 ,但是跟 SHA-1 不同,SHA-2 不是一种算法,而是一系列算法的统称,其中就包括咱们之前提过的 SHA-256 。

实用例子

说了这么多基础知识,最后一部分咱们聊聊哈希在现实中的应用。

首先一个场景是网站注册。当我们提交用户名密码的时候,用户名被会直接保存到网站的数据库中,但是密码却不是直接保存的,而是先把密码转换成哈希,保存到数据库中的其实是哈希。所以,即使是公司后台管理人员,也拿不到用户的密码。这样,如果万一公司数据库泄露了,用户的密码依然是安全的。而当用户自己登录网站的时候,输入密码提交到服务器,服务器上进行相同的哈希运算,因为输入数据没变,所以哈希也不会变,登录也就成功了。

另外一个场景是区块链和加密货币中。比特币地址生成的时候,就用到了 SHA-256 算法,POW 也就是工作量证明,用的也是这个算法。

基本上凡是涉及到密码学的地方,都会或多或少的用到哈希函数。

总结

关于哈希和哈希函数,我们就聊到这里,接下来来总结几句。

哈希的基本作用就是提供一个数据的摘要或者指纹,通常的使用场景就是完整性校验。哈希算法有很多种,一般来讲哈希越长的算法,安全性也就越高,安全度足够高的哈希,或者说没有任何人能够成功实现碰撞的哈希,才有资格被考虑用在加密场合,而这类的哈希算法也被叫做加密哈希算法。

实际中常见的哈希算法有 MD5 ,SHA-1 ,和 SHA-256 等等,其中 MD5 通常用来进行数据校验,SHA-1
曾经是加密哈希算法,但是目前已经被除名,也只能做为一种安全度更高的校验算法了。SHA-256 依然是广泛使用的加密哈希算法,在比特币生成地址以及 POW
工作量证明算法中都会用到。

本文部分内容来自互联网,如有疑问请与我们联系。

发布者:币侠,转转请注明出处:https://www.yfhhf.com/qukuai/131700.html

(0)
上一篇 2023年 1月 31日 上午7:12
下一篇 2023年 1月 31日 上午7:36

相关推荐

  • 数字画收藏品授权吗,有没有人投资数字画NFT收藏品?

    数字画收藏品数字藏品的发展趋势,应当紧紧围绕造型艺术来开展,由于文化是内置价值的。可是目前的数字藏品市场则是良莠不齐,啥都有。计算机生成的数字图被作为数字藏品公布,大家还爱不释手地去个人收藏。确实没想明白,这种东西的收藏价值在哪儿,后通过研究发现,其最首要的因素是人为因素蹭热点导致的,绝大多数用户并不明白什么叫工艺品。这一状况也与漂亮国的NFT市场买卖里一些…

    2022年 12月 31日
    2330
  • 宽创国际元宇宙时报 |美国网站30日发表文章《中国元宇宙将是什么样子》

    【1】北京时间今天(4月1日),花旗发布了一份长达184页的最新报告《元宇宙与经济——解密未來》。该银行认为,元宇宙可能成为下一代互联网,到2030年,它可能会带来8万亿至13万亿美元的全球收入。【2】美国外交学者网站3月30日发表题为《中国的元宇宙将是什么样的?》的文章称,元宇宙已经被描述为许多东西,其定义无疑还将继续发生改变。但不管它代表的是未来什么,有…

    2022年 12月 27日
    2540
  • 欧易网钱包app最新版下载_欧易官网APP下载安装2022

    欧易依托自身五年来在数字资产交易领域积累的撮合系统、柜台系统、冷钱包系统、热钱包系统、资金清算系统、全球多语言的 *** 能力、全球客户身份识别和反洗钱系统等为用户提供安全、稳定、可信的数字资产交易服务。是开放共赢计划首批开放交易所之一。 OKX-注册领取新手礼包!交易手续费返现:20%! 赶紧注册吧!欧易OKX官网注册地址:https://okx.110b…

    2022年 11月 12日
    2300
  • 数字货币行情预警app_十大虚拟币app排行

    数字货币行情预警app——十大虚拟币app排行数字货币的市场变化快速而又难以控制,而且波动极大,随时可能让人利润大幅缩水。因此,专业的数字货币行情预警app成为了数字货币交易者的必需品。以下为广大数字货币交易者推荐的十大虚拟币app排行。 1.币安 币安是全球领先的数字货币交易平台之一,同时也推出了一款行情预警app,提供各种实时数字货币价格信息和行情预警,…

    区块链 2023年 4月 24日
    5460
  • 区块链的硬分叉和软分叉是什么意思?

    在中心化系统中升级非常简单,比如在手机上上有软件可以升级的话,我们可以直接在软件中心升级。但在区块链等去中心化系统中,“升级”并不简单,甚至可能一个不小心就造成区块链分叉。简单来说,“分叉”就是指区块链在升级过程中发生了意见分歧,导致了区块链分叉。因为没有中心化机构,比特币等数字化资产每次代码升级,都需要获得比特币社区的一致认可,如果比特币社区达不到一致,区…

    区块链 2022年 12月 19日
    3110

联系我们

不接风险内容

在线咨询: QQ交谈

工作时间:周一至周五,9:30-18:30,节假日休息

关注微信