Hash加密算法详解:MD5、SHA-1、SHA-256有什么区别?
2026年2月 · 阅读时间 5分钟
Hash(哈希/散列)算法是信息安全的基石。从密码存储到文件校验,从区块链到数字签名,Hash无处不在。
什么是Hash?
Hash算法将任意长度的输入转换为固定长度的输出(哈希值/摘要)。好的Hash算法有以下特性:
- 确定性 — 相同输入永远产生相同输出
- 单向性 — 无法从哈希值反推原始数据
- 雪崩效应 — 输入微小变化导致输出完全不同
- 抗碰撞 — 极难找到两个不同输入产生相同输出
常见Hash算法对比
算法输出长度安全性速度
MD5128位(32字符)❌ 已破解⚡ 最快
SHA-1160位(40字符)⚠️ 不推荐⚡ 快
SHA-256256位(64字符)✅ 安全中等
SHA-512512位(128字符)✅ 安全中等
SHA-3可变✅ 最安全较慢
MD5 — 已经不安全
MD5曾经是最流行的Hash算法,但2004年被证明存在碰撞漏洞。现在可以在几秒内找到MD5碰撞。
❌ 不要用MD5存储密码
❌ 不要用MD5做安全校验
✅ 可以用于非安全场景的快速校验(如文件去重)
SHA-256 — 当前推荐
SHA-256是SHA-2家族的成员,目前被广泛使用:
- 比特币区块链使用SHA-256
- SSL/TLS证书使用SHA-256签名
- Git使用SHA-1(正在迁移到SHA-256)
- 大多数安全应用的首选
实际应用场景
- 密码存储 — 数据库存Hash值而非明文(应配合盐值和bcrypt/scrypt)
- 文件完整性校验 — 下载文件后对比Hash确认未被篡改
- 数字签名 — 先Hash再用私钥加密,验证数据来源和完整性
- 区块链 — 每个区块包含前一个区块的Hash,形成链式结构
- 缓存键 — 用内容的Hash作为缓存的唯一标识
- 数据去重 — 通过Hash快速判断文件是否重复
密码存储的正确方式
❌ 明文存储:password123
❌ 直接Hash:SHA256(password123)
⚠️ 加盐Hash:SHA256(salt + password123)
✅ 专用算法:bcrypt(password123, cost=12)
bcrypt、scrypt、Argon2等算法专为密码设计,内置盐值和可调节的计算成本,能有效抵抗暴力破解。
在线Hash工具
需要快速计算Hash值?试试我们的 免费Hash生成器,支持MD5、SHA-1、SHA-256、SHA-512等多种算法,实时计算。
更多开发者工具请访问 www.cyunyun.com。