logo
GeekFormat

SHA-256 哈希

输入0 字符 · 0 字节
示例:
全部摘要(并列展示)
通过 Web Crypto API 计算
MD5
32 hex
SHA-1
40 hex
SHA-256
64 hex
SHA-384
96 hex
SHA-512
128 hex

免费在线 SHA-256 哈希计算器:支持文本、文件与批量模式,可同时输出 MD5 / SHA-1 / SHA-256 / SHA-384 / SHA-512 五种摘要。Hex / Base64 自由切换,拖拽即算,纯浏览器本地运行,零上传。

相关推荐

适用场景

  • 验证下载的安装包、镜像或附件是否与官方提供的 SHA-256 指纹一致
  • 联调开放平台接口(AWS SigV4、OAuth、JWT HS256、Webhook)时生成 SHA-256 摘要
  • 数据库、备份或网络传输前后校验文件完整性
  • 批量生成多行配置、密码本或测试数据的 SHA-256 摘要
  • 调试 HMAC-SHA256 接口签名,复现服务端期望的摘要值
  • 学习密码学时对比 SHA-256 与 MD5、SHA-1、SHA-512 的输出差异

功能特点

  • 五种算法同屏:MD5、SHA-1、SHA-256、SHA-384、SHA-512 并行计算,便于交叉校验
  • 文本 / 文件 / 批量 / HMAC 四种模式:覆盖接口签名、文件校验、批量摘要等常见场景
  • Hex / Base64 自由切换:满足 JWT、AWS SigV4、OAuth 等不同接口签名格式
  • 拖拽上传:直接拖入安装包、镜像等本地文件,无需上传,100% 浏览器本地计算
  • Verify 校验:粘贴期望哈希值,实时显示「匹配 / 不匹配」
  • 大写输出:可选大写格式,方便与官方文档对照
  • UTF-8 / Latin-1 编码可选:兼容不同系统生成的哈希输入
  • Web Crypto API:使用浏览器原生实现,零依赖、零网络请求

使用方法

  1. 选择计算模式:文本、文件、批量或 HMAC
  2. 输入文本、拖入文件或粘贴批量内容(文本模式实时计算)
  3. 可选开启「多算法」一次性输出 MD5/SHA-1/SHA-256/SHA-384/SHA-512
  4. 按需切换 Hex/Base64 输出,一键复制结果

常见问题

什么是 SHA-256?它的工作原理是什么?

SHA-256 是 SHA-2 家族的密码学哈希函数,由 NSA 设计、NIST 在 FIPS 180-4 中标准化。它以 512 位为一块进行处理,共 64 轮比特混合,最终输出固定 256 位(64 字符十六进制)的摘要。截至 2026 年,针对完整 64 轮 SHA-256 尚无已知的实际碰撞或原像攻击。

可以用 SHA-256 验证下载文件是否被篡改吗?

可以。大多数软件发布者(Linux 发行版、Docker 镜像、npm 包等)会在下载链接旁公布 SHA-256 校验值。下载完成后,本地计算文件的 SHA-256 摘要并与公布值对比,若完全一致则文件与发布者版本逐字节相同。

为什么很多人更常用 SHA-256 而不是 MD5?

MD5 已被公开的碰撞攻击攻破(消费级硬件上几秒即可构造前缀碰撞),因此不再适用于安全场景。SHA-256 输出 256 位摘要,经过 25 年公开审查无已知实际攻击,并被 NIST 批准用于联邦场景。新项目需要哈希时,SHA-256 是默认选择。

SHA-256 可以反向解密吗?

不能。SHA-256 是单向函数:从摘要反推原始输入在计算上不可行。实际可行的「反查」方式是查询彩虹表——即预计算的输入→摘要对照库——这也是为什么在存储密码时必须加盐。

SHA-256 适合用来存密码吗?

不适合,应改用慢速加盐的密钥派生函数。SHA-256 是快速哈希,攻击者拿到 SHA-256 密码库后可以在一块 GPU 上每秒暴力枚举数十亿候选。推荐使用 Argon2id(首选)、scrypt 或 bcrypt,并为每个用户使用独立盐值。如果必须使用 PBKDF2,至少使用 PBKDF2-HMAC-SHA256 并设置足够大的迭代次数。

SHA-256 适合接口签名和 HMAC 调试吗?

非常适合。AWS SigV4、GitHub Webhooks、Slack 签名密钥、JWT HS256、OAuth 1.0a 等主流接口签名方案都依赖 HMAC-SHA256。本工具支持 UTF-8 / Hex / Base64 三种密钥编码方式,便于端到端复现或调试签名。

SHA-256 和 SHA-3 有什么区别?

两者都输出 256 位摘要且安全性相当,但内部结构不同。SHA-256 基于 SHA-2 家族(FIPS 180-4)的 Merkle–Damgård 结构;SHA-3 是 NIST 2012 年选定的海绵结构 Keccak 算法。SHA-3 适合需要长期密码学敏捷性的场景;SHA-256 目前的实际部署更广泛。

为什么 SHA-256 被用在比特币和区块链中?

比特币的工作量证明、区块头、交易 ID 和 Merkle 树承诺都使用 SHA-256(有时连续两次,称为 double-SHA-256)。SHA-256 提供的固定长度输出、抗碰撞性、快速验证、确定性结果,恰好是分布式账本需要用来检测篡改、达成共识的关键属性。

我输入的数据会上传到服务器吗?

不会。所有哈希计算都在你的浏览器本地通过 Web Crypto API 完成。你键入、粘贴或拖入的任何内容都不会通过网络传输。本页面加载完成后可以离线使用。

空字符串的 SHA-256 是什么?

e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855。这是空字符串的标准 SHA-256 摘要,被许多密码学库用作自检向量。

什么是SHA-256 哈希?

SHA-256 是一种密码学哈希函数,属于 SHA-2 家族,由美国国家安全局(NSA)设计,并由 NIST 在 FIPS 180-4(2012)中标准化。它接受任意长度的输入——从空字符串到数 GB 的文件——并输出固定 256 位(64 字符十六进制)的摘要。

算法以 512 位(64 字节)为一块进行处理,共 64 轮混合。内部维护 8 个 32 位状态字(A 至 H),由前 8 个质数的平方根推导出的常量初始化。每轮使用比特旋转、异或、加法以及两个非线性函数 Ch(选择)和 Maj(多数)。每轮常量来自前 64 个质数的立方根,赋予算法强雪崩效应:输入变化 1 比特,输出约一半的比特会发生翻转。

截至 2026 年,针对完整 64 轮 SHA-256 尚未出现已知的实际碰撞攻击或原像攻击。已公开的最佳密码分析仅能攻击减轮变体。其抗碰撞强度约 2^128 次操作,远超任何实际对手的能力,因此 SHA-256 广泛用于 TLS 证书签名、比特币工作量证明、文件完整性校验以及 IPFS、现代 Git 等内容寻址系统。

SHA-256 不适合用于密码存储。它是快速哈希——现代 GPU 每秒可计算数十亿次摘要——攻击者一旦窃取 SHA-256 密码库,可以快速暴力破解常见密码。密码场景应使用慢速加盐 KDF,如 Argon2id、scrypt 或 bcrypt。其他场景下,SHA-256 是现代默认选择。

SHA-256 由 NIST 在 FIPS 180-4 中标准化,由 IETF 在 RFC 6234 中定义,被美国政府批准用于联邦信息系统。它是 NIST SP 800-131A Rev. 2 转换指南中推荐使用的默认算法,也是 CMS、TLS 1.3 和 PGP 签名中唯一仍被接受用于新实现的哈希函数。

Code Examples

空字符串的 SHA-256

text

空字符串有且只有一个公开的 SHA-256 摘要,在日志、缓存、CDN 和存储系统中随处可见。

输入   : (空)
SHA-256: e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855

"hello" 的 SHA-256

text

SHA-256 实现的经典测试向量,许多密码学库使用此字符串作为自检用例。

输入   : hello
SHA-256: 2cf24dba5fb0a30e26e83b2ac5b9e29e1b161e5c1fa7425e73043362938b9824

"hello world" 的 SHA-256

text

网络上引用最多的 SHA-256 示例,常见于教程、RFC 和维基百科。

输入   : hello world
SHA-256: b94d27b9934d3e08a52e52d7da7dabfac484efe37a5380ee9088f7ace2efcde9

JavaScript 计算 SHA-256(Web Crypto API)

javascript

用浏览器原生 Web Crypto API,4 行代码即可在生产环境计算 SHA-256,零依赖、零上传。

const buf = new TextEncoder().encode('hello')
const hash = await crypto.subtle.digest('SHA-256', buf)
const hex = [...new Uint8Array(hash)]
  .map(b => b.toString(16).padStart(2, '0'))
  .join('')
console.log(hex)
// 2cf24dba5fb0a30e26e83b2ac5b9e29e1b161e5c1fa7425e73043362938b9824

Python 计算 SHA-256

python

Python 3.6+ 标准库自带 SHA-256,无需安装任何依赖。

import hashlib
print(hashlib.sha256(b'hello').hexdigest())
# 2cf24dba5fb0a30e26e83b2ac5b9e29e1b161e5c1fa7425e73043362938b9824

命令行计算 SHA-256

bash

一行命令即可校验下载文件。macOS 自带 shasum -a 256,Linux 自带 sha256sum。

$ echo -n 'hello' | sha256sum
2cf24dba5fb0a30e26e83b2ac5b9e29e1b161e5c1fa7425e73043362938b9824  -

$ sha256sum installer.dmg
e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855  installer.dmg

Supported Video Formats

FormatMIMEBrowser supportWhen to use
MD5128 位(32 Hex)全平台碰撞已被攻破,仅用于非安全场景的校验和与遗留兼容。
SHA-1160 位(40 Hex)全平台已于 2017 年被 SHAttered 攻破,新系统请改用 SHA-256。
SHA-256256 位(64 Hex)Web Crypto API现代默认。TLS、文件完整性、比特币、Git、JWT HS256 与 HMAC-SHA256 首选。
SHA-384384 位(96 Hex)Web Crypto API截断版 SHA-512,常见于 TLS 1.2 密码套件与 DNSSEC NSEC3。
SHA-512512 位(128 Hex)Web Crypto APISHA-2 中强度最高的变体,64 位 CPU 上比 SHA-256 更快。
SHA-3 / Keccak256 / 512 位部分支持2012 年 NIST 胜出者,sponge 结构。长期密码学敏捷性场景推荐。

Output Example

A real MP3 file encoded to a Data URI — copy-ready:

输入   : hello world
SHA-256: b94d27b9934d3e08a52e52d7da7dabfac484efe37a5380ee9088f7ace2efcde9

输入   : (空)
SHA-256: e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855

Privacy & Security

本 SHA-256 计算器 100% 在你的浏览器中运行,使用浏览器原生 Web Crypto API。无论你输入文本、上传文件还是粘贴批量数据,都只在本地进行哈希处理,不会发送到任何服务器。我们不会对哈希输入做埋点、不记录日志、不缓存摘要,也不在工具页面上放置任何第三方追踪脚本。Verify 校验的比对同样在客户端完成。可放心处理敏感内容:API 密钥、内部文件名、HMAC 密钥、客户数据等所有你不会随便粘贴到陌生在线 SHA-256 工具的内容。

Authoritative References