什么是哈希
哈希(Hash),又叫散列,是一种单向的数学函数。它接收任意长度的输入(一句话、一个文件、一部电影),输出固定长度的"哈希值"(也叫摘要 / Digest),就像一个独一无二的指纹。
// 同一个输入,永远产生同一个哈希
输入:Hello World
SHA-256:a591a6d40bf420404a011733cfb7b190d62c65bf0bcda32b57b277d9ad9f146e
// 改一个字母,哈希完全不同
输入:hello World
SHA-256:e4d7f1b4ed2e42d15867f945d8d75d7a4e26cbf10fd2d6a0e6a3fe0c7c7f2e3b
// 无论输入多长,输出始终 256 位(64 个十六进制字符)
输入:一整个 10GB 的电影文件
SHA-256:仍然是一个 64 字符的字符串
哈希有三个核心特性:①确定性(同一输入永远同一输出)、②单向性(从哈希值无法推出原始输入)、③雪崩效应(输入改动 1 bit,输出变化 50% 以上)。
在线生成哈希的步骤
- 打开 哈希生成工具,在输入框中输入或粘贴文本。
- 选择哈希算法:SHA-256(推荐)、SHA-512、SHA-1、MD5 等,结果实时生成。
- 如需计算文件的哈希值,切换到「文件」标签页,选择本地文件,工具读取后立即算出哈希。
- 点击「复制」复制哈希值,与官方提供的哈希对比校验文件完整性。
所有计算在浏览器本地完成,文件不会被上传到服务器。
核心功能一览
多算法支持
SHA-1 / SHA-256 / SHA-384 / SHA-512 / MD5,覆盖所有主流哈希算法。
文件哈希计算
选择本地文件直接计算哈希值,适合校验下载文件的完整性。
实时生成
输入的同时即时显示哈希值,无需点击按钮。
纯本地计算
使用 Web Crypto API 在浏览器本地计算,文本和文件绝不上传。
SHA256 vs MD5 vs SHA-1:该用哪个
| 算法 | 输出长度 | 安全状态 | 推荐用途 |
|---|---|---|---|
| MD5 | 128 bit(32 字符) | 已破解(可碰撞) | 仅数据去重、非安全校验 |
| SHA-1 | 160 bit(40 字符) | 已破解(可碰撞) | 不推荐新项目使用 |
| SHA-256 | 256 bit(64 字符) | 目前安全 | 密码签名、区块链、TLS、文件校验 |
| SHA-512 | 512 bit(128 字符) | 目前安全 | 高安全要求场景,64 位平台更快 |
哈希 vs 加密:核心区别
| 维度 | 哈希(Hash) | 加密(Encryption) |
|---|---|---|
| 方向 | 单向,不可逆 | 双向,可解密还原 |
| 密钥 | 不需要 | 需要密钥 |
| 输出长度 | 固定(如 SHA256 始终 256 bit) | 与输入长度成正比 |
| 典型用途 | 密码存储、文件校验、数字签名 | 数据传输加密、文件保密 |
常见应用场景
- 文件完整性校验:下载 ISO 镜像、软件包后,计算本地文件的 SHA256 与官方公布的值对比,确认未被损坏或篡改。
- 密码存储:用户注册时,后端不存明文密码,只存
bcrypt(sha256(password) + salt)的结果。即使数据库泄露,攻击者也无法直接获得明文。 - 数据去重:云存储服务用文件哈希判断两个用户是否上传了同一文件,避免重复存储。
- Git 版本控制:Git 用 SHA-1 哈希标识每一次 commit、每个文件对象,确保版本历史不可篡改。
- 区块链:每个区块包含前一个区块的哈希,形成不可篡改的链式结构。
常见问题 FAQ
SHA256 和 MD5 有什么区别?该用哪个?
两者都是哈希算法,但安全性差距巨大。MD5 已被完全破解——已知方法可以构造两个内容不同的文件拥有完全相同的 MD5 值(碰撞攻击)。MD5 仅适合非安全场景(如数据去重、校验传输中的随机错误)。SHA256 目前安全,是行业标准,用于密码签名、区块链、TLS 证书等。新项目应使用 SHA256 或更安全的 SHA512。
哈希值和加密有什么区别?
加密是双向的:用密钥加密后,可以用密钥解密还原出原文。哈希是单向的:任意输入都能算出哈希,但从哈希值无法推导出原始输入(理想情况下)。因此密码应该用哈希(加盐)存储——即使数据库泄露,攻击者也无法直接从哈希值获取明文,只能暴力穷举尝试。
怎么用哈希校验下载的文件是否完整?
很多开源软件官网会提供 SHA256 checksum。下载文件后,用哈希工具选择该文件,计算 SHA256 值,与官网公布的值逐字符对比。如果完全一致,说明文件完整且未被篡改;如果不一致,文件可能损坏或已被植入恶意代码。
在线哈希生成安全吗?数据会上传吗?
速工具 的哈希生成完全在浏览器本地运行,使用 Web Crypto API,文本和文件不会上传到任何服务器。但注意:不要在在线工具中哈希真正的密码或密钥——即使不上传,浏览器环境的安全假设不同于后端(如可能被浏览器扩展读取)。生产环境密码哈希应使用 bcrypt/scrypt/argon2 在后端完成。