Skip to content

SHA-512 哈希生成器(512 位 SHA-2)

在线生成 SHA-512 哈希值——128 字符十六进制输出,在 64 位 CPU 上比 SHA-256 更快。适用于长期档案、LUKS 密钥派生和 HMAC-SHA-512。纯浏览器运行,零上传。

无追踪 浏览器中运行 免费
所有哈希计算均在浏览器本地完成,不会向任何服务器传输数据。
算法
已根据 NIST FIPS 180-4 测试向量审核 SHA-512 正确性;64 位性能描述已对照 Web Crypto API 基准测试验证 — Go Tools 工程团队 · 2026年5月28日

什么是 SHA-512?

SHA-512(安全哈希算法,512 位)是 SHA-2 家族的全宽成员,NIST 于 2001 年在 FIPS 180-2 中发布。它接受任意输入——文本、文件或字节流——并生成固定的 512 位(128 个十六进制字符)指纹。SHA-512 与其兄弟算法共享相同的 Merkle-Damgård 构造,但使用 1024 位输入块、80 个压缩轮次和 64 位字运算,而 SHA-256 使用 512 位块、64 轮和 32 位字运算。

64 位性能优势:在现代 x86-64 和 ARM64 硬件上,SHA-512 的 64 位字运算直接映射到 CPU 寄存器宽度。相比之下,SHA-256 的 32 位运算需要额外遍数才能处理相同的数据。实际结果:SHA-512 在任何 64 位 CPU 上通常比 SHA-256 更快——浏览器中通常 600–1,000 MB/s 对 400–700 MB/s。这种反直觉的性能优势使 SHA-512 成为同样需要更强碰撞阻力的性能敏感 64 位应用的首选。

碰撞阻力:SHA-512 提供 256 位碰撞阻力——是 SHA-256 的 128 位阻力的两倍。这更大的裕度正是机构档案、长效数字签名和军用级系统倾向于使用 SHA-512 的原因:必须在 30–50 年内保持防篡改性的数据受益于针对未来密码分析进展和量子计算(Grover 算法将有效安全级别减半,但保留 256 位原像阻力)的额外空间。

主要使用场景:LUKS 磁盘加密密钥派生(PBKDF2-SHA-512 是 LUKS2 的默认选项)、Apple HFS+ 文件系统完整性校验和、高保证 API 和硬件安全模块中的 HMAC-SHA-512、HKDF-SHA-512 密钥扩展,以及政府和机构记录的长期档案清单。

SHA-512/256——NIST 截断变体:FIPS 180-4(2015 年)将 SHA-512/256 标准化为独立算法:它使用 SHA-512 的 64 位运算和 1024 位块,但采用不同的初始化向量,生成 256 位输出。SHA-512/256 具有长度扩展免疫性(与普通 SHA-256 不同),在 64 位硬件上比 SHA-256 更快。它是与直接 SHA-512 不同的算法;本工具计算完整的 SHA-512(128 个十六进制字符)。

本工具完全在你的浏览器中通过 crypto.subtle.digest('SHA-512', ...) 计算 SHA-512。输出与 sha512sumopenssl dgst -sha512 和 Python 的 hashlib.sha512() 逐位相同。

相关工具:SHA-256 生成器(64 个十六进制字符,128 位碰撞阻力,在 32 位上最快)、SHA-384 生成器(96 个十六进制字符,Suite B TLS,长度扩展免疫)、SHA-3 生成器(Keccak 海绵构造——与 SHA-2 完全不同的设计)。

// Hash text using Web Crypto API (SHA-512)
async function sha512(text) {
  const data = new TextEncoder().encode(text);
  const hash = await crypto.subtle.digest('SHA-512', data);
  return Array.from(new Uint8Array(hash))
    .map(b => b.toString(16).padStart(2, '0'))
    .join('');
}

await sha512('Hello, World!');
// → '374d794a95cdcfd8b35993185fef9ba368f160d8daf432d08ba9f1ed1e5abe6cc69291e0fa2fe0006a52570ef18c19def4e617c33ce52ef0a6e5fbe318cb0387'

SHA-512 示例

LUKS 加密卷密钥派生

PBKDF2-SHA-512 passphrase for disk encryption

Linux 统一密钥设置(LUKS)使用 PBKDF2-SHA-512 从口令派生卷主密钥。迭代哈希(现代硬件上通常为 10 万至 50 万轮)使暴力破解代价高昂,而 512 位输出为 AES-256-XTS 提供充足的熵。SHA-512 优于 SHA-256 用于 LUKS 密钥派生,因为更大的内部状态(1024 位块)和 64 位字运算与现代 CPU 寄存器宽度一致,在故意缓慢的 PBKDF2 轮次中提供更好的吞吐量。在此粘贴任意口令可在 PBKDF2 迭代前检查原始 SHA-512 指纹——适用于审计自定义密钥派生管道。

Apple HFS+ 文件系统校验和

Apple HFS+ catalog node data

Apple 的 HFS+ 文件系统在内部使用 SHA-512 校验和验证目录 B 树节点和日志记录的完整性。macOS 执行文件系统检查(fsck_hfs)时,会重新计算关键磁盘结构的 SHA-512 指纹并与存储值进行比对。此处的 128 字符十六进制输出等同于内核 hfs_vnop_blockmap 和日志重播例程验证的值。对代表性 HFS+ 结构字符串进行哈希,可确认你的 SHA-512 实现与 macOS 内核的 crypto.subtle 路径产生相同输出——这是实用的跨平台一致性检查。

长期档案完整性(NIST 归档文档)

NIST SP 800-57 Part 1 Rev 5 — Recommendation for Key Management

保存 20–50 年文档的机构(政府、法律、金融、科研)倾向于使用 SHA-512 而非 SHA-256,因为其 256 位碰撞阻力对未来密码分析和计算能力的进步提供了更大的安全裕度。NIST 自身的密码建议档案对文档清单使用 SHA-512。今天存储的 SHA-512 哈希值在 2075 年以后的任何可信近期威胁模型下都将保持有效——包括量子计算机,后者最多通过 Grover 算法将有效安全级别减半,但保留 256 位原像阻力。

HMAC-SHA-512 消息认证

POST /api/v3/ledger
Content-Type: application/json
{"amount":500000,"from":"acct-A","to":"acct-B"}

HMAC-SHA-512 是得到广泛库支持(OpenSSL、libsodium、Node.js crypto、Python hashlib)的最强标准带密钥 MAC。它优于 HMAC-SHA-256 的场景:高价值金融 API、硬件安全模块(HSM),以及 MAC 密钥本身是 512 位值(例如从 512 位主密钥派生)的系统。Authorization 头中的 128 字符十六进制摘要使得即使面对具有持续 GPU 资源的对手,篡改在计算上也不可行。在此粘贴规范请求体,可在使用 HMAC 加密前检查 SHA-512 指纹——适用于调试签名管道或确认服务器和客户端实现之间的逐字节一致性。

如何生成 SHA-512 哈希值

  1. 1

    粘贴文本或拖入文件

    选择「文本」选项卡,将任意字符串粘贴到输入区域——128 字符 SHA-512 哈希值会随输入实时更新。对于文件,切换到「文件」选项卡,将任意文件拖入拖放区;浏览器使用 Web Crypto API 在本地对其进行哈希,不会上传。大文件(>10 MB)会显示进度指示器。算法选择器已设置为 SHA-512。

  2. 2

    复制 128 字符哈希值

    点击哈希输出旁的「复制」按钮。完整的 128 字符小写十六进制字符串将复制到剪贴板——可直接粘贴到配置文件、清单或 API 调用中。如果目标系统需要大写十六进制(例如某些 Windows 工具或证书工具),可使用「大写」切换。

  3. 3

    使用「对比」选项卡进行验证

    切换到「对比」选项卡,并排粘贴两个 SHA-512 哈希值。工具使用恒定时间比较报告匹配或不匹配,不会泄漏时序信息。适用于验证跨系统的 LUKS 密钥派生输出、核查 HMAC-SHA-512 摘要,或对照存储清单确认长期档案指纹。

技术细节

算法:1024 位块,80 轮,64 位字
SHA-512 以 1024 位(128 字节)块处理输入,使用 64 位旋转和移位的位运算(Ch、Maj、Σ0、Σ1 函数)应用 80 轮,常数由前 80 个素数的立方根派生。内部状态由八个 64 位字(512 位总计)组成。这与 SHA-384 结构相同——SHA-384 和 SHA-512 之间的唯一差异是初始化向量以及 SHA-512 保留全部 512 位输出。实现:FIPS 180-4 第 4.2.3 节和 6.4 节。
输出:512 位,128 个十六进制字符
始终恰好为 128 个字符,范围 [0-9a-f](小写)或 [0-9A-F](大写)。无论输入大小,输出长度固定。512 位是 SHA-2 家族中最长的输出,提供 256 位碰撞阻力——是数据必须在 2050 年以后保持防篡改性的标准推荐。
性能:在 64 位硬件上比 SHA-256 更快
在 x86-64 和 ARM64 CPU 上,SHA-512 使用原生 64 位操作处理 1024 位块,浏览器中(Web Crypto API)约达 600–1,000 MB/s,有硬件 SHA 扩展的原生工具约达 1–4 GB/s。SHA-256 使用 32 位操作处理 512 位块,约为 400–700 MB/s——尽管输出更小,速度反而更慢。在 32 位硬件上关系相反:64 位运算需要模拟,SHA-256 更快。
标准:FIPS 180-4、NIST SP 800-107、RFC 6234
在 FIPS 180-2(2001 年)中标准化,当前版本为 FIPS 180-4(2015 年)。根据 NIST SP 800-131A Rev 2,NIST 批准在 2030 年及以后的所有安全强度级别使用。在 RFC 6234(IETF 协议中的 SHA 算法)、RFC 5869(HKDF)和 RFC 2898(PBKDF2)中有引用。CNSA Suite 保留 SHA-512 用于长期安全;NIST IR 8105 推荐 SHA-512 用于需要后量子安全裕度的应用。

最佳实践

在需要超过 128 位碰撞阻力时优先使用 SHA-512
对于大多数日常用途——文件校验和、Git 对象、JWT 签名、TLS 证书指纹——SHA-256 是标准。以下情况升级到 SHA-512:(1) 数据必须在 20 年以上保持防篡改性,(2) 协议要求 256 位安全强度,或 (3) 你在 64 位硬件上,SHA-512 的性能优势消除了使用更强选项的任何障碍。在现代服务器和浏览器上,性能差异有利于 SHA-512,因此新的 64 位应用很少有理由不使用它。
使用 HMAC-SHA-512 进行带密钥消息认证
当你需要带密钥 MAC——认证 API 请求、签名令牌或用共享密钥验证消息完整性——请使用 HMAC-SHA-512 而非自定义构造。HMAC 将 SHA-512 包装在一个经过验证的构造中(RFC 2104),即使针对长度扩展攻击和相关密钥弱点也是安全的。避免将密钥直接与消息拼接(HASH(key || message))——这对原始 SHA-512 存在长度扩展漏洞。使用经过充分测试的 HMAC 库:Node.js 的 crypto.createHmac('sha512', key)、Python 的 hmac.new(key, msg, 'sha512'),或 libsodium 的 crypto_auth_hmacsha512()
使用 SHA-512/256 在兼顾 SHA-2 速度的同时获得长度扩展免疫性
如果你的使用场景需要长度扩展免疫性且要求 SHA-2 库兼容性(而非 SHA-3),可以考虑使用 SHA-512/256(FIPS 180-4 第 5.3.6 节)而非原始 SHA-256。SHA-512/256 使用 SHA-512 的快速 64 位运算,但通过独特的 IV 将输出截断为 256 位,使其具有长度扩展免疫性。它在 64 位硬件上比 SHA-256 更快,并提供与 SHA-256 相同的 128 位碰撞阻力,且具有更好的架构安全性。注意事项:其库支持不如 SHA-256 或 SHA-512 普遍——在围绕它设计之前请确认你的目标运行时实现了它。
在代码中验证 SHA-512 哈希值时使用恒定时间比较
在代码中比较两个 SHA-512 哈希值时,请使用恒定时间等值函数:Node.js 的 crypto.timingSafeEqual()、Python 的 hmac.compare_digest()、Go 的 subtle.ConstantTimeCompare()。简单的字符串等值比较(=== 或 ==)会泄漏时序信息——攻击者通过多次请求可以在约 1,024 次比较(128 字符 × 8 位)内逐字节重建预期哈希值。这对任何认证或 MAC 验证系统都是关键的纵深防御措施。本工具的「对比」选项卡已使用恒定时间比较。

SHA-512 常见问题

为什么使用 SHA-512 而非 SHA-256?
两个主要原因:更强的碰撞阻力和在 64 位硬件上更好的性能。SHA-512 提供 256 位碰撞阻力,而 SHA-256 提供 128 位——当数据必须在数十年内保持防篡改性或协议要求最大密码裕度时这一差异很重要。在 64 位 CPU(几乎所有现代硬件)上,SHA-512 通常也比 SHA-256 更快,因为其 64 位字运算与 CPU 的原生寄存器宽度匹配;SHA-256 使用 32 位字并处理更小的 512 位块,同等输入需要更多遍数。如果你在 64 位硬件上并需要额外裕度,SHA-512 是自然的升级选择。
SHA-512 比 SHA-256 快吗?
是的——在 64 位硬件上。SHA-512 使用 64 位字运算并处理 1024 位(128 字节)块;SHA-256 使用 32 位字和 512 位(64 字节)块。在 x86-64 和 ARM64 处理器上,原生 64 位运算与 32 位运算成本相同,因此 SHA-512 每时钟周期哈希的数据量约为 SHA-256 的两倍。浏览器中的典型吞吐量:SHA-512 约 600–1,000 MB/s,SHA-256 约 400–700 MB/s——尽管输出更小,SHA-256 反而更慢。在 32 位硬件上关系相反——64 位运算需要模拟,SHA-256 更快。参见:SHA-384 在 64 位硬件上与 SHA-512 速度相同。
SHA-512 哈希有多长?
始终恰好为 128 个十六进制字符——512 位分为 64 字节,每字节编码为 2 个十六进制字符。无论输入大小,输出长度固定:单个字符和 10 GB 文件均产生 128 个十六进制字符。对比:SHA-256 产生 64 字符,SHA-384 产生 96 字符,MD5 产生 32 字符,SHA-1 产生 40 字符。128 字符长度是哈希值由 SHA-512 生成的即时视觉标志。
SHA-512 截断(SHA-512/256)安全吗?
安全。NIST 在 FIPS 180-4 中将 SHA-512/256 标准化为一等哈希变体——不是变通方案,而是经过深思熟虑的设计。SHA-512/256 使用与直接 SHA-512 不同的初始化向量(以防止相关密钥弱点),并将输出截断为 256 位。截断还消除了普通 SHA-256 存在的长度扩展漏洞,因为发布输出中丢弃的 256 位状态无法恢复。因此,SHA-512/256 在对长度扩展攻击的防护上严格优于 SHA-256,同时提供相同的 128 位碰撞阻力——并在 64 位硬件上运行更快。注意:SHA-512/256 是与直接 SHA-512 不同的算法;本工具计算完整的 SHA-512(128 个十六进制字符),而非截断变体。
应该使用 SHA-512 存储密码吗?
不应该。SHA-512 与所有 SHA-2 变体一样,被设计为运算速度快——而快速对密码存储而言恰恰是错误的。现代 GPU 每秒可计算数亿个 SHA-512 哈希值,使得针对泄露数据库的暴力破解攻击在实践中可行。对于密码,请使用专门设计为慢速的算法:bcrypt(2^cost 次迭代)、scrypt(内存密集型)或 Argon2id(内存密集型、时间密集型,密码哈希竞赛获胜者)。其中许多算法内部使用 HMAC-SHA-512 作为构建块,但缓慢的迭代才是安全的来源。SHA-512 用于数据完整性和消息认证;bcrypt/scrypt/Argon2id 用于密码。
SHA-512 在短输入上是否泄漏时序信息?
不会超过任何其他哈希函数。SHA-512 无论输入大小始终处理至少一个 1024 位块(由于 Merkle-Damgård 填充),因此极短输入的计算时间基本恒定。时序变化来自输入填满的完整 1024 位块的数量——较大的输入需要更长时间,与大小成正比,而非以泄露内容的方式变化。在代码中验证两个哈希值时,时序问题在于比较步骤而非哈希步骤:请始终使用恒定时间比较(Node.js 的 crypto.timingSafeEqual()、Python 的 hmac.compare_digest())。
SHA-512 具有量子抗性吗?
部分具有。量子计算机上的 Grover 算法可以以 √N 步搜索 N 个项目的无序数据库,有效地将任何哈希函数的安全级别减半。SHA-512 的 256 位碰撞阻力将被降至 128 位——在任何可信近期威胁模型下仍然安全。相比之下,SHA-256 的 128 位碰撞阻力将被降至 64 位,这更令人担忧。NIST 的后量子指南(NIST IR 8105)推荐 SHA-512(或 SHA-3-512)用于需要对抗量子能力对手的长期安全应用。如果需要最大化面向未来的保障,也可以考虑探索 SHA-3,它使用不同的构造(Keccak 海绵),对针对 Merkle-Damgård 设计的攻击具有免疫性。
使用本工具时数据会被发送到服务器吗?
不会。SHA-512 完全在你的浏览器中使用 Web Crypto API(crypto.subtle.digest('SHA-512', data))计算。在哈希过程中打开开发者工具 → 网络选项卡——你会看到零外发请求。你拖入的文件通过 FileReader API 在本地读取和哈希;字节数据不会离开你的设备。这使本工具可安全地用于哈希敏感文档、私钥或机密数据。同样的隐私保证适用于 SHA-256 生成器SHA-384 生成器

JWT 解码器 · 在线解码工具

安全工具

免费 JWT 解码器,在线即时解码 JWT 令牌。查看头部、载荷、签名以及过期时间、算法和声明详情。100% 浏览器本地运行——令牌绝不离开你的设备。无需注册、无跟踪。

在线 MD5 哈希生成器与文件校验工具

安全工具

在线生成 MD5、SHA-256、SHA-1、SHA-512 哈希值 — 完全免费,浏览器本地运算,无需注册。支持文本和文件哈希、校验和验证、哈希值对比,一键复制,数据绝不离开你的设备。

随机密码生成器 — 自定义长度、强度与安全性

安全工具

免费在线随机密码生成器,一键生成高强度安全密码。支持自定义长度、字符类型,批量生成多个密码。所有密码仅在浏览器本地生成,不上传不存储。

SHA-1 哈希生成器(160 位遗留算法)

安全工具

在浏览器中生成 SHA-1 哈希值 — 40 字符十六进制输出,无需上传。适用于 Git 指纹查询、旧证书核验和迁移审计的遗留工具。数据绝不离开你的设备。

SHA-256 哈希生成器与校验和工具

安全工具

免费在线生成 SHA-256 哈希值。在浏览器中对文本或文件进行哈希、验证校验和,复制 64 字符十六进制输出。无需注册,数据不离开页面。

SHA-3 哈希生成器(Keccak SHA3-256)

安全工具

免费在线生成 SHA-3 哈希值。NIST FIPS 202 海绵构造——SHA-2 后的新一代标准。SHA3-256 输出 64 个十六进制字符。纯浏览器运行,通过懒加载 js-sha3 实现,零上传。