2024-08-20 13:46:35

一文盘点常见的哈希算法有哪些

摘要
在了解常见的哈希算法有哪些这一问题之前,大家需要先来了解一下究竟什么是哈希算法。其实哈希就是密码学的基础,我们想要了解数字签名和加密通信等技术,就必须要先要了解什么是哈希。哈希的英文就是hash

在了解常见的哈希算法有哪些这一问题之前,大家需要先来了解一下究竟什么是哈希算法。其实哈希就是密码学的基础,我们想要了解数字签名和加密通信等技术,就必须要先要了解什么是哈希。哈希的英文就是hash,即切碎搅拌的意思,而哈希函数的运算结果就是哈希值,哈希算法是是一个单向算法,能够在数据存储的过程中进行完整性校验,保证数据无损坏。哈希算法的种类还是比较丰富的,那么究竟常见的哈希算法有哪些?下面就让币圈子小编为大家盘点一下。

一文盘点常见的哈希算法有哪些

常见的哈希算法有哪些

目前流行的Hash算法包括MD5、SHA-1和SHA-2。

MD4(RFC 1320)是MIT的Ronald L.Rivest在1990年设计的,MD是Message Digest的缩写。其输出为128位。MD4已证明不够安全。

MD5(RFC 1321)是Rivest于1991年对MD4的改进版本。它对输入仍以512位分组,其输出是128位。MD5比MD4复杂,并且计算速度要慢一点,更安全一些。MD5已被证明不具备”强抗碰撞性”。

SHA(Secure Hash Algorithm)是一个Hash函数族,由NIST(National Institute of Standards and Technology)于1993年发布第一个算法。目前知名的SHA-1在1995年面世,它的输出为长度160位的hash值,因此抗穷举性更好。SHA-1设计时基于和MD4相同原理,并且模仿了该算法。SHA-1已被证明不具”强抗碰撞性”。

为了提高安全性,NIST还设计出了SHA-224、SHA-256、SHA-384,和SHA-512算法(统称为SHA-2),跟SHA-1算法原理类似。SHA-3相关算法也已被提出。

哈希在密码学中的应用

在密码学中,hash算法的作用主要是用于消息摘要和签名,换句话说,它主要用于对整个消息的完整性进行校验。举个例子,我们登陆知乎的时候都需要输入密码,那么知乎如果明文保存这个密码,那么黑客就很容易窃取大家的密码来登陆,特别不安全。那么知乎就想到了一个方法,使用hash算法生成一个密码的签名,知乎后台只保存这个签名值。

由于hash算法是不可逆的,那么黑客即便得到这个签名,也丝毫没有用处;而如果你在网站登陆界面上输入你的密码,那么知乎后台就会重新计算一下这个hash值,与网站中储存的原hash值进行比对,如果相同,证明你拥有这个账户的密码,那么就会允许你登陆。银行也是如此,银行是万万不敢保存用户密码的原文的,只会保存密码的hash值而已。在这些应用场景里,对于抗碰撞和抗篡改能力要求极高,对速度的要求在其次。

一个设计良好的hash算法,其抗碰撞能力是很高的。以MD5为例,其输出长度为128位,设计预期碰撞概率为1/2^{64},这是一个极小极小的数字——而即便是在MD5被王小云教授破解之后,其碰撞概率上限也高达1/2^{41},也就是说,至少需要找2^{40}次才能有1/2的概率来找到一个与目标文件相同的hash值。

上文就是币圈子小编对于常见的哈希算法有哪些这一问题的详细盘点。通过上文的介绍,大家可以了解到哈希算法是有很多种的,一般来说长度越长的算法会被认为越安全。而那些安全度低的哈希算法一般都被认为是普通哈希算法,这种哈希算法主要用来做完整性校验;一般安全度高的会被称为加密哈希算法,会被用在加密算法中。其实这其中的高低都是一个相对的概念,目前最流行的加密算法是SHA-2,它与SHA-1不同,SHA-2不是一种算法,而是一系列算法的统称。

声明:文章不代表币圈网观点及立场,不构成本平台任何投资建议。投资决策需建立在独立思考之上,本文内容仅供参考,风险自担!转载请注明出处!侵权必究!
回顶部