SHA1 SHA2 SHA3 hash算法

单向散列函数也被称为消息摘要函数(message digest function)、哈希函数或者杂凑函数。输入的消息也称为原像(pre-image),输出的散列值也称为消息摘要(message digest)或者指纹(fingerprint),相当于该消息的身份证。

1. 常见hash算法

单向散列函数有多种实现算法,常见的有:MD5SHA-1SHA-2和 SHA-3

MD5 与 SHA-1 算法已被攻破,不应该被用于新的用途;

SHA-2 与 SHA-3 还是安全的,可以使用。

SHA-2包括:SHA-224、SHA-256、SHA-384、SHA-512、SHA-512/224、SHA-512/256。

SHA-3包括:SHA3-224、SHA3-256、SHA3-384、SHA3-512。

2. sha1 sha2 sha3 的区别

输入:

  • sha1输入的消息长度 2^64-1。
  • sha2输入的消息长度 2^128-1。
  • sha3可以输入任意长度。

输出:

  • sha1输出的是160位的消息摘要。
  • sha2输出的是256位的消息摘要。
  • sha3输出的任意位的消息摘要。

sha2的碰撞的概率比sha1要低,因为sha2有2^256种组合,sha1有2^160种组合。