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

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

哈希音译自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.sws100.com/biquan/216127.html

(0)
鸟叔鸟叔
上一篇 2023年 2月 14日
下一篇 2023年 2月 14日

相关推荐

  • XLM恒星币会超越瑞波币吗?

    很简单,作为一个简单的支付类别的币,对于钱包的使用来说,很快,安全性也很高,创始人也是瑞波的创始人,持续看好,发币方式都是免费,这是至关重要的。我个人觉得,以以后恒星的市值会高于瑞波,成为支付界的大咖币。 恒星币也是一个穿越多轮牛熊的老牌币种,常年稳居主流币种行列。创始人JED也是一位币圈大神,技术实力非常强大。现在恒星转型为基金会的运作模式,已经与多家大型…

    币圈资讯 2023年 3月 26日
  • 币安进不了(币安k线颜色怎么调)

    关于币安进不了(币安k线颜色怎么调)这个问题很多人都不太了解,下面由句子百科Sws100.com小编derfy为大家详细讲解一下,大家来看下。 1.币安网打不开解决办法 简介 这篇文章主要介绍了币安交易所为什么登录不进去? 币安网打不开解决办法,请跟着句子百科Sws100.com小编W一起来看看句子百科Sws100.com小编W整理的解决方法吧! 希望对投资…

    2023年 3月 10日
  • 邻萌宝/LMC币总量多少?未来五年价格预测

    LMC邻萌宝,是一个数字货币社交生态平台,其实这个项目一开始的亮点还挺多的,落地也不错,只是该项目后期发展跟不上,再者又是国产项目,团队没实力,没资源,推进缓慢,以至于现在已经被交易所给下架,而且日交易额都将近归零了。 2016年上线,一开始众筹就获得了1000万人民币的融资,在当时也算是明星项目。团队公开透明,国产项目那个时候做实事的偏少,而这个项目在募资…

    币圈资讯 2022年 12月 31日
  • 以太坊ETH就是热点,它将引领行业方向

    以太坊ETH就是热点,它将引领行业方向 随着区块链技术的不断发展和完善,以太坊ETH已成为热点话题。以太坊是一种开源的区块链平台,它通过使用智能合约来使得区块链应用程序可以进行更多样化的操作,而不仅仅是传统的数字货币交易。在以太坊上,开发者可以构建出各种区块链应用,从而扩展了区块链的应用场景。 以太坊技术与智能合约 以太坊的技术与智能合约相辅相成。智能合约是…

    币圈资讯 2023年 7月 17日
  • 币安链自动转账脚本(tp提币到币安走什么通道)

    关于币安链自动转账脚本(tp提币到币安走什么通道)这个问题很多人都不太了解,下面由句子百科https://www.sws100.com小编derfy为大家详细讲解一下,大家来看下。 1.免责声明:本文旨在传递更多市场信息,不构成任何投资建议。 2.骇客地址共接收了377笔比特币转账,共计约186枚比特币(约合人民币821,278元)。 3.早在今年3月区块链…

    2023年 4月 7日

联系我们

在线咨询: QQ交谈

邮件:k37759@foxmail.com

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

关注微信