🔐 哈希值 Hash

数字指纹 · 唯一标识 · 完整性验证
哈希值概念图:数据与哈希指纹
🔍 什么是哈希值?
哈希函数示意图

哈希值(Hash Value)是通过哈希函数将任意长度的数据映射为固定长度“数字指纹”的结果。它具有单向性抗碰撞性雪崩效应。哪怕原数据只改动一个字符,哈希值也会面目全非。

📌 常见哈希长度:SHA-256 → 64位十六进制 (256位) / MD5 → 32位十六进制

⚡ 核心特性 4大支柱
单向性 🔒 单向不可逆
抗碰撞 🛡️ 抗碰撞
雪崩效应 ❄️ 雪崩效应
固定长度 📏 固定输出
🧮 主流哈希算法
📌 核心应用场景
文件校验

📁 文件完整性校验

下载软件或镜像后,通过对比官方提供的哈希值(SHA-256 / MD5)可确认文件是否被篡改。如 sha256sum filename

密码存储

🔑 密码安全存储

网站只存储密码的哈希值(加盐),而非明文。即使数据库泄露,攻击者也无法还原原始密码。

区块链与哈希

⛓️ 区块链 & 加密货币

每个区块包含前一个区块的哈希值,形成不可篡改的链式结构。工作量证明(PoW)依赖哈希计算。

数字签名

✍️ 数字签名 & 证书

先对消息哈希,再用私钥加密哈希值,验证时用公钥解密哈希并比对,确保身份与完整性。

常见问题解答
哈希值能解密吗?
不能。哈希是单向函数,只能通过输入计算哈希,无法从哈希反推原始数据。但可通过彩虹表或暴力枚举尝试碰撞。
MD5 还安全吗?
MD5 已被证明具有碰撞漏洞(不同文件产生相同MD5),不应用于安全签名或密码存储。但仍可用于非安全校验。
什么是“加盐”哈希?
在密码末尾添加随机字符串(盐)再哈希,防止彩虹表攻击。即使相同密码,加盐后哈希值也不同。
比特币挖矿与哈希的关系?
矿工不断计算区块头哈希,直到找到小于目标值的哈希。这需要大量算力,从而保障网络安全。
哈希值长度固定吗?
是的。例如SHA-256输出256位(32字节),无论输入是1字节还是1GB,哈希长度不变。
tip
💡 验证哈希值:在Linux/macOS使用 sha256sum 文件,Windows使用 certutil -hashfile 文件 SHA256