| 算法 | 哈希值 |
|---|---|
| MD5 128-bit | 等待计算... |
| SHA-1 160-bit | 等待计算... |
| SHA-256 256-bit | 等待计算... |
| SHA-512 512-bit | 等待计算... |
| 算法 | 哈希值 |
|---|---|
| MD5 128-bit | 等待文件... |
| SHA-1 160-bit | 等待文件... |
| SHA-256 256-bit | 等待文件... |
| SHA-512 512-bit | 等待文件... |
| 算法 | 输出长度 | 速度 | 安全性 | 常见用途 |
|---|---|---|---|---|
| MD5 | 128 bit(32字符十六进制) | 极快 | 已破解,不推荐加密用途 | 文件完整性校验、非安全场景 |
| SHA-1 | 160 bit(40字符十六进制) | 快 | 已出现碰撞攻击,逐步淘汰 | Git 提交 ID、老旧证书(逐步废弃) |
| SHA-256 | 256 bit(64字符十六进制) | 中等 | 目前安全,广泛推荐 | TLS 证书、代码签名、比特币 |
| SHA-512 | 512 bit(128字符十六进制) | 稍慢 | 非常安全 | 密码存储(配合盐值)、高安全场景 |
密码学哈希函数需满足以下特性:
| 特性 | 说明 |
|---|---|
| 确定性 | 相同输入始终产生相同输出 |
| 单向性 | 无法从哈希值反推原始数据 |
| 雪崩效应 | 输入微小变化导致输出完全不同 |
| 抗碰撞性 | 难以找到两个不同输入产生相同输出 |
| 固定长度 | 无论输入长短,输出长度固定 |
SHA-256 和 SHA-512 均属于 SHA-2 家族,由美国国家安全局(NSA)设计,NIST 于 2001 年发布。SHA-256 在 32 位系统上更高效,SHA-512 在 64 位系统上更高效。
| 场景 | 推荐算法 |
|---|---|
| 文件完整性校验(下载验证) | SHA-256 或 MD5(均可,安全要求高用 SHA-256) |
| 密码存储 | 不应直接使用哈希,应使用 bcrypt/Argon2 |
| 数字签名 | SHA-256 或 SHA-512 |
| 数据去重/指纹 | MD5 或 SHA-1(性能优先时) |
| 区块链/加密货币 | SHA-256(比特币 PoW) |