什么是 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 哈希 |
---|---|
Hello, World! | dffd6021bb2bd5b0af676290809ec3a53191dd81c7f70a4b28688a362182986f |
password | 5e884898da28047151d0e56f8dc6292773603d0d6aabbdd62a11ef721d1542d8 |
123456789 | 15e2b0d3c33891ebb0f1ef609ec419420c20e320ce94c65fbc8c3312448eb225 |
(空) | 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 推荐用于安全应用。