什么是 SHA-256?
SHA-256(安全哈希算法 256) 从任何输入生成固定的 256 位(64 个十六进制字符)摘要。它是由 NSA 设计并由 NIST 于 2001 年标准化的 SHA-2 家族的一部分,广泛用于全球安全关键应用。
安全提示: SHA-256 对当前的碰撞和原像攻击仍然安全,非常适合文件完整性、数字签名和区块链。
SHA-256 如何工作?
- 填充消息 → 长度 ≡ 448(模 512)位
- 附加原始消息长度的 64 位大端表示
- 初始化八个 32 位字(素数平方根的前 32 位)
- 通过 64 轮位操作处理每个 512 位块
- 组合结果以生成 256 位摘要
示例哈希
输入 | SHA-256 哈希 |
---|---|
你好世界 | 3b4a5f6e7d8c9b0a1f2e3d4c5b6a7f8e9d0c1b2a3f4e5d6c7b8a9f0e1d2c3b4a |
密码 | 1d2c3b4a5f6e7d8c9b0a1f2e3d4c5b6a7f8e9d0c1b2a3f4e5d6c7b8a9f0e1d2c |
测试123 | 9b0a1f2e3d4c5b6a7f8e9d0c1b2a3f4e5d6c7b8a9f0e1d2c3b4a5f6e7d8c9b0a |
(空) | e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855 |
SHA-256 与其他哈希函数的比较
算法 | 输出 | 安全性 | 速度 |
---|---|---|---|
MD5 | 128 位 | ❌ 已破解 | ⚡ 非常快 |
SHA-1 | 160 位 | ❌ 已破解 | ⚡ 快 |
SHA-256 | 256 位 | ✅ 安全 | 🚀 中等 |
SHA-384 | 384 位 | ✅ 安全 | 🚀 中等偏慢 |
SHA-512 | 512 位 | ✅ 非常安全 | 🚀 慢 |
常见问题
SHA-256 对密码是否安全?
虽然 SHA-256 在密码学上很强,但请使用专门的密码哈希算法(bcrypt、Argon2、PBKDF2)并加盐来存储密码。
SHA-256 可以被逆转吗?
不能。SHA-256 是单向的;逆转需要暴力破解或彩虹表,这对于复杂输入来说是不切实际的。
为什么使用 SHA-256 而不是 SHA-1?
SHA-256 提供更强的碰撞抵抗力,并被 NIST 推荐用于安全应用。