← 返回博客

什么是 SHA512 哈希

2026-04-07 · 5 分钟阅读

SHA512 简介

SHA512 是 SHA-2 哈希函数家族中输出最长的变体,产生 512 位(128 个十六进制字符)的哈希值。SHA512 与 SHA256 同属 SHA-2 家族,但内部设计有所不同:SHA512 使用 64 位字(Word)进行运算,而 SHA256 使用 32 位字。在 64 位处理器上,SHA512 往往比 SHA256 更快,因为 64 位 CPU 可以在一个操作中处理整个 64 位字。

SHA512("hello") =
9b71d224bd62f3785d96d46ad3ea3d73319bfbc2890caadae2dff72519673ca72323c3d99ba5c11d7c7acc6e14b8c5da0c4663475c2e5c3adef46f73bcdec043

SHA512 vs SHA256 的关键差异

Feature           SHA256              SHA512
Output bits       256 bits            512 bits
Hex characters    64                  128
Block size        512 bits            1024 bits
Word size         32 bits             64 bits
Rounds            64                  80
Speed on 32-bit   Faster              Slower
Speed on 64-bit   Slower or equal     Faster or equal
Security margin   2^128 collision     2^256 collision

什么时候选择 SHA512 而非 SHA256

大多数应用场景下,SHA256 提供了足够的安全强度(2 的 128 次方碰撞抗性)。SHA512 的 2 的 256 次方碰撞抗性对于目前或可预见的未来是"超额安全"的。以下场景可以考虑 SHA512:

SHA-512/256:兼具两者优点

SHA-512/256 是一个有趣的折衷方案:它使用 SHA512 的内部算法(64 位字运算,在 64 位 CPU 上更快),但输出截断为 256 位。这意味着你可以获得 SHA512 在 64 位系统上的速度优势,同时获得 256 位的输出(与 SHA256 相同大小,但不同的哈希值,内部抵抗某些针对 SHA256 的攻击)。

// Node.js: SHA-512/256
const hash = crypto.createHash('sha512-256').update('hello').digest('hex');
// 64-character output, but computed with SHA-512 internals

SHA512 在各系统中的实现

# Linux file hash
sha512sum myfile.iso
# 128-char hash  myfile.iso

# macOS
shasum -a 512 myfile.iso

# Python
import hashlib
hash = hashlib.sha512(b'hello').hexdigest()

# JavaScript (Node.js)
const crypto = require('crypto');
const hash = crypto.createHash('sha512').update('hello').digest('hex');

Linux 密码文件中的 SHA512

现代 Linux 系统(如 Ubuntu、CentOS 7+)默认使用 SHA-512 存储用户密码哈希(配合盐值)。密码文件 /etc/shadow 中以 $6$ 开头的条目表示使用了 SHA-512 算法($1$=MD5, $5$=SHA-256, $6$=SHA-512)。注意,这里使用的是 SHA-512 配合特殊的基于盐值的 Key Stretching 方案(不是简单的 SHA-512 哈希),提供了比单纯哈希更强的密码存储安全性。

SHA512 使用建议

总结:在大多数情况下,SHA256 已经足够安全,且拥有更广泛的支持和更小的输出大小。当你运行在 64 位服务器且需要处理大量数据、或面临合规要求、或希望提前为量子计算威胁做准备时,选择 SHA512 是合理的。两者都是 SHA-2 家族成员,目前都被认为是密码学安全的。

立即免费使用相关工具

免费使用 →