Bitget下载

注册下载Bitget下载,邀请好友,即有机会赢取 3,000 USDT

APP下载   官网注册

在了解常见的哈希算法有哪些这一问题之前,大家需要先来了解一下究竟什么是哈希算法。其实哈希就是密码学的基础,我们想要了解数字签名和加密通信等技术,就必须要先要了解什么是哈希。哈希的英文就是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不是一种算法,而是一系列算法的统称。