在前面的文章,我们了解了SHA-1,今天我们就来聊一聊它的后续版本——SHA-2。SHA-2是“Secure Hash Algorithm 2”的缩写,中文名称和SHA-1对应,为“安全散列算法2”。

SHA-2

SHA-2是一种密码散列函数算法标准,其中包括SHA-224、SHA-256、SHA-384、SHA-512、SHA-512/224、SHA-512/256,这些变体除了生成摘要的长度、循环运行的次数等一些微小差异外,算法的基本结构是一致的。

它们有什么区别?

  • SHA-224和SHA-256的不同点:

h0到h7的初始值不同,以及SHA-224输出时截掉h7的函数值。

  • SHA-512和SHA-256的不同点:

SHA-512所有的数字都是64位,SHA-512运行80次加密循环而非64次,SHA-512初始值和常量拉长成64位,以及二者比特的偏移量和循环位移量不同。

  • SHA-384和SHA-512的不同点:

h0到h7的初始值不同,以及SHA-384输出时截掉h6和h7的函数值。

SHA-1和SHA-2的区别

两者哈希值位数长度是其重要的区别,SHA-1是160位的哈希值,而SHA-2是组合值,有不同的位数,其中最受欢迎的是256位,也就是SHA-256。

SHA-2安全散列

SHA-2的应用场景

  • 数据库中保存用户密码

将用户的密码通过SHA-2输出到数据库,每次登录时对比散列值即可。由于SHA-2的不可逆性,就算数据库被盗取,也没有办法得到用户的信息。有时为了更加安全,则会进行加盐操作。

SHA-2安全散列

  • 防止文件篡改

目前大部分提供下载服务的网站都有提供文件的SHA值,这是因为单向散列函数具备防篡改的效果,若是下载的文件的SHA值和网站提供的SHA值不符,则可能此文件已经遭到了篡改。

  • 数字签名

在进行数字签名时也会使用SHA-2,数字签名的处理过程非常耗时,因此一般不会对整个消息内容直接使用数字签名,而是先通过SHA-2计算出消息的散列值,然后再对这个散列值使用私钥加密,得到的就是数字签名。

  • 安全协议

SHA-2算法在许多安全协议中广为使用,包括TSL/SSL、PGP、SSH、S/MIME和IPsec,同时在TSL/SSL安全协议数字证书中,也有SHA-2的影子。

SHA-2安全散列

免责声明:素材源于网络,如有侵权,请联系删稿。