常见算法之SHA算法

SHA算法(Secure Hash Algorithm)

类似于md5算法,SHA算法也是一种摘要算法

SHA算法版本

SHA算法主要分为SHA-0、SHA-1、SHA-2、SHA-3。

SHA-0

发布不久就被发现存在安全隐患,可忽略。

SHA-1

可以生成160bit的信息摘要,比md5算法的128bit多出来的32bit,可以使不同明文的碰撞几率降低2^32倍。但其实很早就有了破解SHA-1算法的办法,目前的主流是SHA-2各版本。

SHA-2

可以认为是SHA-1的升级版。是一系列SHA算法变体的总称:

  • SHA-256:可以生成256bit的信息摘要;
  • SHA-224:是SHA-256的阉割版,可生成224bit的信息摘要;
  • SHA-512:可以生成512bit的信息摘要;
  • SHA-384:是SHA-512的阉割版,可生成384bit的信息摘要;

生成的信息摘要越长,发生碰撞的几率就越小,破解的难度就越大。但耗费的性能和占用的空间就越高。

SHA-1和SHA-2算法与md5算法的生成过程类似,但更复杂一些。比如SHA-512的每一段摘要分成了A~H八段,每段长度为64bit。

SHA-3

2012年Keccak算法被宣发成为SHA-3算法。SHA-3算法与SHA-1和SHA-2不同,使用全新的算法引擎。

jdk9中加进了SHA-3算法。

你可能感兴趣的:(常见算法之SHA算法)