加密哈希已成为网络安全领域不可或缺的一部分。实际上,它已广泛用于包括比特币和其他加密货币协议在内的各种技术中.
在本文中,我们将通过加密货币进行哈希处理,以了解加密哈希,其示例,历史记录等。.
本文针对那些希望对该主题有更多技术了解的人。但是,如果您不是技术专业人士,请不要担心,因为我们会尽力以最佳方式简化此概念.
密码学一直是计算机科学的核心。没有它,我们将永远无法实现安全的通信或信息共享。最好定义为保护信息的方法.
什么是加密散列?
在密码学中,哈希是一种用于将数据转换为唯一的文本字符串的方法。数据被转换为一种非常有效的方法,该方法可在几秒钟内对数据进行哈希处理。此外,对数据类型或数据大小也没有限制-哈希适用于所有数据.
那么,是什么使哈希如此流行和独特呢?这是因为它不能逆转!
是的,它是一种单向函数(加密散列函数),其设计仅能像这样工作.
在单向函数中,数据一旦放入哈希算法中,就会输出唯一的字符串。但是,唯一字符串不能通过将其放回哈希函数来解密原始数据。这种有用性和功能使加密散列在保护信息和数据方面非常有益.
另外,退房
- 如何在Python中建立区块链
- 入门指南:在加密货币中使用加密
哈希方法还有另外一项功能。任何给定的数据都会给出相同的哈希输出.
这些功能使其在比特币等加密货币中非常有用.
散列如何工作?
为了更好地理解散列,我们还需要学习散列的工作方式。散列是一种数学运算,需要较少的计算能力来执行。但是,反向所需的计算能力非常昂贵,因此当前的计算机无法完成.
但是,量子计算机可以逆转计算机哈希。但是,已经有抗量子散列的方法.
出于哈希目的,使用了大量算法。这包括以下内容.
- 讯息直接传送(MD5)
- 安全哈希功能(SHA1)
- 安全哈希功能(SHA-256)
并非所有哈希函数都是100%安全的。例如,SHA1容易破裂,因此不建议用于实际用途。使用的最常见的哈希函数之一包括MD5和SHA-256.
MD5主要用于验证下载的文件。因此,如果您下载文件,则可以使用校验和计算器来计算其校验和。如果哈希字符串与下载程序提供的字符串匹配,则表示下载正确完成,没有任何文件损坏。简而言之,它验证文件的完整性.
哈希在哪里最常用?
散列主要用于密码。让我们举一个例子来了解它.
创建电子邮件帐户时,您的电子邮件提供商会询问您电子邮件地址和密码。显然,他们不会以简单的纯文本格式保存电子邮件和密码。如果这样做的话,则会损害您信息的隐私和安全性。为了确保难以解密这些信息,他们使用您密码上的哈希函数,这样即使是在电子邮件提供者内部工作的任何人也无法解密该信息。.
因此,如果您下次尝试登录,则哈希函数会对其进行解密并与保存的哈希进行匹配,从而使您可以访问电子邮件.
其他用法包括签名生成和验证以及文件完整性检查.
当然,那里还有其他哈希应用程序。散列的另一种最流行用法是加密货币,我们将在下面讨论.
如何在加密货币中使用哈希
散列主要用于加密货币中以进行挖掘。因此,在比特币中,挖矿是验证SHA-256哈希函数的过程。这意味着散列可用于写入新事务,将它们引用回到上一个块并为它们加时间戳
当一个新的区块被添加到区块链时,据说网络已经达成共识。这样,它将验证包含在块中的事务。此外,添加该功能使任何人都不可能将其撤消。由于散列,所有这些都是可能的,这就是为什么将其用于维护区块链完整性的原因.
比特币使用工作量证明共识方法,该方法反过来使用SHA-256单向哈希函数.
散列函数示例
现在,让我们来看一个加密散列函数的示例.
为了让我们和您更轻松,我们将使用在线可用的SHA-256工具.
这是它的链接: SHA256在线
现在,如果您输入101Blockchains作为输入,它将给出以下输出.
输入: 101Blockchains.com
输出: fbffd63a60374a31aa9811cbc80b577e23925a5874e86a17f712bab874f33ac9
使用SHA256哈希函数
现在,如果您输入一个简单的“ Hello World”作为输入,它将给出以下输出.
输入: 你好,世界
输出: a591a6d40bf420404a011733cfb7b190d62c65bf0bcda32b57b277d9ad9f146e
在这两个输出中,您将看到两个输出值具有相同的长度,即256位,即长度为64个字符.
现在,让我们在输入中输入101blockchain。请注意,我们从101Blockchains中删除了用于生成第一个哈希的“ s”.
输入: 101区块链
输出: c4d67db72f3d18eaca2e8e8498271de353d25874e4448be4887f2563576c6fe8
如果将其与我们的第一个哈希输出进行比较,那么即使我们仅从输入中删除一个字母,您也会看到巨大的差异.
那么,我们从该示例中学到了什么?让我们总结如下.
- 所有输出的长度相同
- 输入的微小变化导致输出完全不同
- 无法将输出反转为输入.
密码哈希函数的性质
为了更好地理解加密散列或一般而言的散列,让我们看一下加密散列函数的属性.
确定性
已知加密哈希函数是确定性的。这意味着对于给定的输入,输出将是相同的。用更简单的术语来说,如果您通过哈希函数第一百次输入相同的输入,则在所有情况下输出都是相同的.
确定性属性很重要,因为它启用了单向函数的概念。如果这种方式行不通,那么就不可能将其用于哈希信息。同样,对于相同输入的随机输出会使整个过程无用.
防前像
加密散列函数具有防前映像功能,这意味着一旦生成的散列值不会显示任何有关输入的内容.
这是一个重要的功能,因为它提供了非常重要的.
计算效率高
哈希函数的计算效率很高。这意味着无论输入多长时间复杂,它都会快速生成哈希输出。对于希望使用哈希函数存储敏感信息的服务,欢迎提高效率。但是,这只是计算上有效的一种方式,即从输入到输出。由于它是不可逆的,因此任何计算机都不可能对其进行逆向工程.
但是,如果您要谈论数字,则可能需要花费任何现代计算机时间,才能从给定的哈希值中猜测输入。此外,随着现代计算机日新月异的强大功能,哈希函数比以往任何时候都更加高效.
不可逆向工程
哈希函数不能反转。这意味着它是安全的。如您所知,加密散列函数是在不可逆函数的前提下创建的。用于创建输出的数学方程式和过程得以简化,并且无法逆转。从技术上讲,哈希函数不支持逆运算.
防碰撞
耐碰撞性是我们要讨论的最终属性。此属性确保没有两个不同的输入产生相同的输出.
如您现在所知道的,输入可以是任意长度。根据此定义,输入可以是无限数。现在,固定长度的输出每次都需要不同。固定长度的限制还意味着输出是有限数量的-即使有限数量具有巨大的价值。这就提出了数学上的挑战,要为每个输入分开输出.
好消息是,大多数流行的哈希函数都具有防碰撞功能.
流行的哈希类-哈希算法列表
这导致我们进入下一部分,在这里讨论流行的哈希类。我们将列出在密码学领域中非常流行的三个哈希类.
- 讯息摘要(MD)
- 安全哈希功能(SHF)
- RIPE邮件直接(RIPEMD)
让我们一一讲解.
留言文摘(MD)
Message Digest是一系列散列函数,在整个Internet历史中都使用.
该系列包含哈希函数,例如MD2,MD4,MD6和最流行的MD5。所有MD哈希函数都是128位哈希函数,这意味着摘要大小为128位.
如前所述,软件提供商使用MD5摘要哈希函数来检查用户通过文件服务器下载的文件的完整性。为了使其正常工作,提供程序使下载者可以访问文件的MD5校验和。为了检查文件的完整性,使用MD5校验和计算校验和,然后与提供的哈希值进行交叉校验。如果该值不同于所述文件的完整性检查失败,则用户需要下载整个文件或部分文件.
MD5不如其他哈希函数安全。 2004年,仅用一个小时就对散列函数进行了分析攻击。这是使用计算机集群完成的。这使得MD在保护信息方面不是那么有用,因此可用于诸如验证文件完整性的任务.
如果您想了解有关MD5的更多信息,请查看Wiki页面上的MD5- MD5.
安全哈希函数(SHA)
安全哈希函数是另一种非常流行的哈希函数系列。它是由美国国家标准技术研究院(NIST)开发和出版的。他们发布了SHA的四个版本,包括SHA-0,SHA-1,SHA-2和SHA-3.
您应该已经猜到了,较新的版本可以纠正较旧版本的SHA的某些问题或弱点。例如,在发现SHA-0弱点之后就释放了SHA-1。 SHA-1于1995年发布.
SHA-1一经发布便有了自己的名字。当时,包括安全套接字层(SSL)在内的各种应用程序都在使用它。.
但是,随着时间的流逝,开发人员还发现了SHA-1冲突,这使它毫无用处。 NIST提出了他们的SHA-2安全哈希函数家族,该家族采用了四个SHA变体,包括SHA-256,SHA-224,SHA-512和SHA-384。在这四个变体中,两个是核心,包括SHA-256和SHA-512。它们之间的区别是SHA-512使用64字节字,而SHA-256仅使用32字节字.
SHA-2系列哈希函数仍被广泛使用。但是,还有非国家安全局设计师在2012年的公开比赛中设计和发布的SHA-3。它以前被称为Keccak。 Keccak的优势包括更好的抗攻击性和高效的性能.
RIPE讯息直接传送(RIPEMD)
RIPE Message Direct(RIPEMD)是1992年发布的一系列哈希函数。此外,RIPE代表RACE完整性基元评估.
它由开放研究社区设计和管理。在该系列中,有五个功能,包括RIPEMD,RIPEMD-160,RIPEMD-128,RIPEMD-320和RIPEMD-256。但是,最常用的功能是RIPEMD-160.
RIPEMD的设计基于Message Direct.
散列,加密和加盐之间的区别
在本节中,我们将简要介绍散列,加密和加盐之间的区别.
让我们开始加密.
加密是使用公共密钥对原始信息进行加扰,然后使用私有密钥对原始信息进行解锁的过程。这是一种双向功能.
另一方面,散列是一种单向函数,用于对信息进行加扰以进行验证.
最后一个词是“盐腌”.
盐化类似于散列,但是此处将唯一的值添加到密码中以形成不同的散列值。这里的盐值必须是唯一的并保持隐藏.
结论
这导致我们密码学哈希的结束。我们先通过了解哈希提供的内容,然后快速了解哈希的工作方式,类型等,来尝试全面了解哈希。!
如您所见,哈希有很多用例,包括加密货币,密码保护,签名验证等。尽管散列以其自己的方式是唯一的,但由于世界各地拥有强大的计算机,散列在保护信息方面的有效性每天都在下降.
研究人员还致力于通过发布更强大的散列函数来保持现状,该散列函数具有抗量子性,可以承受世界范围内计算能力的发展.
那么,您如何看待哈希?在下面发表评论,让我们知道.