什么是 SHA-384?
SHA-384(安全哈希算法 384) 从任何输入生成固定的 384 位(96 个十六进制字符)摘要。它是 SHA-512 的截断版本,由 NIST 在 FIPS 180-4 中标准化,提供了在需要更高碰撞抵抗力的应用中安全性和性能之间的平衡。
安全提示: SHA-384 对已知的碰撞和原像攻击是安全的,推荐在需要比 SHA-256 更高安全性的情况下使用。
SHA-384 如何工作?
- 填充消息 → 长度 ≡ 896(模 1024)位
- 附加原始消息长度的 128 位大端表示
- 初始化八个 64 位字(素数平方根的前 64 位)
- 通过 80 轮混合操作处理每个 1024 位块
- 将最终状态从 512 位截断为 384 位摘要
示例哈希
输入 | SHA-384 哈希 |
---|---|
Hello, World! | fdb66c3e...(为简洁起见已截断) |
password | b109f3bbbc244eb82441917ed06d618b9008dd09...(截断) |
123456789 | cb00753f45a35e8bb5a03d699ac65007272c32ab0...(截断) |
(空) | 38b060a751ac96384cd9327eb1b1e36a21fdb71114be0743...(截断) |
SHA-384 与其他哈希函数的比较
算法 | 输出 | 安全性 | 速度 |
---|---|---|---|
SHA-256 | 256 位 | ✅ 安全 | 🚀 中等 |
SHA-384 | 384 位 | ✅ 非常安全 | 🚀 中等 |
SHA-512 | 512 位 | ✅ 非常安全 | 🚀 慢 |
常见问题
SHA-384 对密码是否安全?
使用 SHA-384 进行一般哈希,但对于密码存储,请优先选择 bcrypt 或 Argon2 等专用方案并加盐。
SHA-384 可以被逆转吗?
不能。SHA-384 是单向函数;逆转需要暴力破解或大规模彩虹表。
何时选择 SHA-384?
选择 SHA-384 以获得比 SHA-256 更强的碰撞抵抗力,而不会完全增加 SHA-512 的开销。