中文开发者指南

哈希和加密有什么区别?

对比 hash、encryption、checksum 和 password hashing,说明 SHA-256、MD5、bcrypt、scrypt、Argon2 分别适合什么场景。

Last reviewed: 2026-05-31Reading time: 4 分钟打开 哈希生成工具进入 Token 检查工作流

核心要点

哈希是单向摘要;加密可以用密钥还原;密码存储需要专门的慢哈希算法,而不是普通 SHA-256。

建议先用脱敏样例理解概念,再把结论带回自己的接口、日志或配置环境中验证。工具输出可以帮助定位问题,但不应替代服务端校验、安全审查或项目上下文判断。

使用前检查

在相关工具里操作前

  • 先确认输入是否为脱敏样例,而不是生产密钥、Token、客户数据或密码。
  • 先理解字段单位、编码格式或安全边界,再把结果用于接口联调。
  • 需要安全判断时,把最终校验放在可信服务端,而不是只依赖浏览器端显示。
1

哈希是单向摘要

哈希函数把输入转换成固定长度摘要,适合完整性校验、内容指纹和快速比较。

它不是加密,因为正常情况下不能从摘要还原原文。

2

加密需要密钥

如果系统未来还需要读取原始数据,就需要加密、密钥管理或其他数据保护方案。

哈希不能替代加密。把敏感数据 hash 一下并不一定安全,尤其是输入可预测时。

3

密码存储是单独问题

不要用普通 MD5、SHA-1 或 SHA-256 直接存密码。密码通常可猜,攻击者可以高速尝试。

生产密码存储应使用 bcrypt、scrypt、Argon2 等专门算法,并配合 salt 和成本参数。

  • SHA-256:适合许多完整性校验。
  • MD5/SHA-1:遗留场景,不建议新安全设计。
  • bcrypt/scrypt/Argon2:密码存储场景。