SHA-256 与 SHA-512 都是 SHA-2 系列的安全哈希,但输出长度不同。SHA-256 生成 256 位(64 位),SHA-512 生成 512 位(128 位)。两者目前均无已知的实用攻击。
核心差异在于内部运算单位。SHA-256 以 32 位、SHA-512 以 64 位字运算。因此在 64 位 CPU 上 SHA-512 反而可能更快,而在 32 位环境中 SHA-256 更有优势。
在安全余量方面,SHA-512 提供更长的哈希,但对大多数用途而言,SHA-256 的 256 位已然足够。哈希越长,存储·传输开销越大,因此若无特殊需求,SHA-256 是实用的默认选择。
总结而言,一般情况下用 SHA-256,在 64 位服务器上需要最佳性能与更长安全余量时用 SHA-512。SHA-384 是截断 SHA-512 以防止长度扩展攻击的变体,可在证书等场景中一并考虑。