哈希算法(Hash Algorithms),也被称为散列函数或摘要算法。它们的主要功能是对输入数据进行不可逆的映射,生成固定长度的哈希值,广泛用于数据完整性校验、数字签名、密码存储等场景,哈希算法是单向的、无密钥的。
常见哈希算法及其生成的加密结果长度的总结
哈希函数 | 位(Bits) | 字节(Bytes) | 十六进制字符 |
---|---|---|---|
MD5 | 128 | 16 | 32 |
SHA-1 | 160 | 20 | 40 |
SHA-224 | 224 | 28 | 56 |
SHA-256 | 256 | 32 | 64 |
SHA-384 | 384 | 48 | 96 |
SHA-512 | 512 | 64 | 128 |
SHA-512/224 | 224 | 28 | 56 |
SHA-512/256 | 256 | 32 | 64 |
SHA3-224 | 224 | 28 | 56 |
SHA3-256 | 256 | 32 | 64 |
SHA3-384 | 384 | 48 | 96 |
SHA3-512 | 512 | 64 | 128 |
BLAKE2b-256 | 256 | 32 | 64 |
BLAKE2b-512 | 512 | 64 | 128 |
BLAKE2s-256 | 256 | 32 | 64 |
RIPEMD-160 | 160 | 20 | 40 |
Whirlpool | 512 | 64 | 128 |
Tiger | 192 | 24 | 48 |
GOST R 34.11-94 | 256 | 32 | 64 |
GOST R 34.11-12 | 256/512 | 32/64 | 64/128 |
MD5
MD5(Message Digest Algorithm 5)是一种广泛使用的哈希函数,能够将任意长度的输入数据映射为固定的128位(16字节)输出,通常以32个十六进制字符表示。虽然速度较快,但由于其在碰撞攻击中的弱点,现在不推荐在安全性要求高的场景使用。
SHA-1
SHA-1(Secure Hash Algorithm 1)由美国国家安全局(NSA)设计,生成160位(20字节)的哈希值,表示为40个十六进制字符。SHA-1在历史上被广泛应用,但随着碰撞攻击的成功,其安全性也受到了质疑,目前也不推荐在安全敏感场景使用。
SHA-2 家族
SHA-2家族包含多个变种:
- SHA-224:生成224位(28字节)的哈希值,通常用于需要较短输出的场景。
- SHA-256:生成256位(32字节)的输出,即64个十六进制字符。广泛应用于数字签名、区块链等领域。
- SHA-384:生成384位(48字节)的输出,适用于需要更高安全性的场景。
- SHA-512:生成512位(64字节)的哈希值,是安全性要求最高的变种之一。
- SHA-512/224 和 SHA-512/256:基于SHA-512的变种,生成较短的224位和256位输出。
SHA-3 家族
SHA-3家族是下一代安全哈希标准,基于Keccak算法设计:
- SHA3-224:生成224位(28字节)的哈希值。
- SHA3-256:生成256位(32字节)的哈希值。
- SHA3-384:生成384位(48字节)的哈希值。
- SHA3-512:生成512位(64字节)的哈希值。
BLAKE2
BLAKE2是高性能的哈希函数,分为以下两种主要变种:
- BLAKE2b-256 和 BLAKE2b-512:分别生成256位和512位的输出,适用于通用场景。
- BLAKE2s-256:专为资源受限设备设计,生成256位输出。
RIPEMD-160
RIPEMD-160是一种生成160位(20字节)哈希值的函数,安全性比MD5和SHA-1高,但速度较慢。
Whirlpool
Whirlpool生成512位(64字节)的哈希值,适合需要高安全性和大输出的场景。
Tiger
Tiger算法生成192位(24字节)的输出,设计目标是提高速度和安全性,但使用较少。
GOST 哈希算法
- GOST R 34.11-94:生成256位(32字节)的输出,基于俄罗斯标准。
- GOST R 34.11-12:提供256位和512位两种输出,改进了旧版GOST算法。
安全性
哈希函数 | 安全性 | 推荐用途 |
---|---|---|
MD5 | 已被破坏 | 数据完整性校验,不适合安全场景 |
SHA-1 | 已被破坏 | 遗留系统兼容,不推荐用于新开发 |
SHA-256 | 安全性较高 | 数字签名、区块链、密码学 |
SHA-512 | 安全性最高 | 高安全性需求的场景,如政府或金融系统 |
SHA3 家族 | 安全性较高 | 未来密码学应用 |
BLAKE2 | 高性能 | 高效计算和资源受限设备 |
RIPEMD-160 | 安全性较低 | 特定应用中的兼容性需求 |
Whirlpool | 安全性较高 | 高安全性需求的场景 |
Tiger | 使用有限 | 特定系统或实验性应用 |
GOST 哈希算法 | 区域性应用 | 俄罗斯及相关地区的标准 |