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

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

哈希音译自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

相关推荐

  • 数字藏品存在欺诈现象被平台封了是真的吗?为什么这么多号不能用了

    近几日,继好几个数字藏品平台微信小程序被下线后,手机微信再度对数字藏品行业下手治理,好几个数字藏品平台微信公众平台忽然遭封禁。对于此事,精英团队回复表明,是为预防虚拟货币交易蹭热点风险性。据不彻底统计分析,忽然遭封禁的账户包含Art Meta元艺数、一点数藏、归藏元宇宙、画生 Meta、元本室内空间、神达数藏、One Meta、零号地球上、iBox 和诺坊体…

    2022年 12月 27日
    1840
  • pig币比特币交易平台软件下载 pig币下载官方APP安卓

    如何下载pig币比特币交易平台软件? 比特币作为数字货币的代表,近年来备受瞩目。而作为比特币的分叉币种,pig币也越来越受到人们的关注。如果您准备尝试使用pig币进行交易,那么首先需要下载pig币比特币交易平台软件。 步骤1:进入pig币比特币交易平台官网 要下载pig币比特币交易平台软件,首先需要进入官方网站。在浏览器中输入“pigcoin.vip”即可。…

    区块链 2023年 4月 28日
    4760
  • 抹茶官网下载最新版1.33 抹茶安卓版最新版下载官网

    只需几步即可轻松买币,支持购买比特币等99种数字货币 抹茶交易所ok官网app最新版提供免费的C2C、币兑币、比特币合约行情显示及交易服务。致力于为用户和行业提供安全、专业、透明的数字资产一站式服务。力求让用户享受简单便捷的投资交易平台。是用户们放心、信赖的合法交易平台。 抹茶交易所app目前支持哪些交易方式? 1、现货交易:目前已开通ZB、QC、 C、US…

    区块链 2023年 4月 9日
    2640
  • 区块链的优势和劣势有哪些?

    区块链是分布式,在公有链上,等于每个人手上都有一份完整账本,并且由于区块链计算余额、验证交易有效性等等都需要追溯每一笔账,因此交易数据都是公开透明的,如果我知道某个人的账户,我就能知道他的所有财富和每一笔交易,没有隐私可言。 区块链的去中心、自治化的特点淡化了国家监管的概念。然而所有的创新,都需要符合监管的要求。区块链的监管,在某种程序上是促进区块链的商业应…

    区块链 2022年 12月 27日
    1980
  • OLAND币价值如何?OLAND币值得长期投资吗?

    随着区块链技术的不断发展,越来越多的虚拟货币开始受到关注,并且OLAND币是一种新兴的数字货币,其价值与市场需求和投资者信心密切相关,那么OLAND币价值如何?OLAND币值得长期投资吗? OLAND币的价值主要取决于其项目的前景、市场接受程度和技术创新能力。 项目前景:OLAND币的价值与其背后的项目有着密切的关系。如果OLAND团队能够提供有创新性且具有…

    2024年 2月 7日
    1330

联系我们

不接风险内容

在线咨询: QQ交谈

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

关注微信