SHA其实是一个大家族,成员众多,名字又很像,经常把人绕晕。今天用最简单的方式帮你理清楚。
一、SHA-1:第一代
诞生时间:1995年
输出长度:160位(40字符)
现状:已经不安全,被淘汰
二、SHA-2:第二代(目前的主流)
SHA-2是一个系列,按输出长度分:
SHA-224:56位字符
SHA-256:64位字符(最常用)
SHA-384:96位字符
SHA-512:128位字符
其中SHA-256是现在用得最多的,SSL证书、密码存储、区块链都在用它。
三、SHA-3:第三代(未来的备选)
SHA-3和前面完全不是一回事,它是全新的算法,设计思路都不一样,只是为了万一哪天SHA-2被攻破,有个备选方案。
目前SHA-3还没大规模普及,主要用在一些对安全性要求特别高的政府项目里。
四、日常开发选哪个?
普通场景:SHA-256足够
需要更高安全性:SHA-512
老系统维护:尽快从SHA-1迁移到SHA-256
新项目起步:直接上SHA-256,不用纠结
五、一句话总结
SHA-1已死,SHA-2当立,SHA-3是备胎。目前只要记住用SHA-256就够了。

