哈希与加密完全指南:MD5、SHA256、AES 的正确用法

加密编码(更新于 2026年5月25日)

哈希 vs 加密:关键区别

哈希 (Hash) 加密 (Encryption)
可逆性 ❌ 不可逆 ✅ 可解密
用途 完整性校验、指纹 保密传输
密钥 不需要 需要密钥
示例 MD5、SHA256 AES、RSA

常见误区:「MD5 加密密码」—— MD5 是哈希不是加密,且已不安全。


哈希算法

MD5

  • 输出:128 位 (32 十六进制字符)
  • 速度:极快
  • 安全性:❌ 已碰撞,不应用于安全场景
  • 适用:文件完整性快速校验(非安全)

使用 MD5 工具 计算文件或文本的 MD5 值。

SHA 系列

算法 输出长度 安全性 适用
SHA-1 160 位 ❌ 已碰撞 遗留系统
SHA-256 256 位 ✅ 安全 推荐使用
SHA-512 512 位 ✅ 安全 高安全需求

使用 SHA256 工具 计算 SHA-256 哈希。

HMAC

哈希 + 密钥 = 消息认证码。既验证完整性,又验证来源:

HMAC-SHA256(message, secret_key) → 认证哈希

使用 HMAC 工具 计算 HMAC 值。


加密算法

AES(对称加密)

同一个密钥加密和解密:

模式 特点 推荐
AES-128-CBC 经典模式 一般用途
AES-256-GCM 认证加密 推荐
AES-256-CTR 流式加密 大文件

使用 AES 加密工具 进行 AES 加解密。

何时用哈希 vs 加密

文件下载校验 → SHA256 哈希对比
密码存储   → bcrypt/argon2(不是 MD5!)
API 签名   → HMAC-SHA256
数据传输   → AES-256-GCM 加密

常见误用与正确做法

误用 问题 正确做法
MD5 存储密码 彩虹表秒破 bcrypt/argon2 + salt
SHA256 存储密码 太快,易暴力破解 专用密码哈希函数
硬编码 AES 密钥 源码泄露 = 密钥泄露 环境变量 / KMS
ECB 模式加密 相同明文 = 相同密文 使用 CBC/GCM 模式
哈希 = 加密 概念混淆 需要解密用 AES

工具库加密工具链

全部基于 Web Crypto API,浏览器本地处理:


总结

理解哈希与加密的本质区别,选择正确的算法和模式,是信息安全的基本功。工具库提供完整的加密工具链,全部在浏览器本地运行,适合开发调试和学习——但生产环境请使用经过审计的密码学库。

#哈希#加密#MD5#SHA256#AES#安全