SHA512标准口径一篇讲透
我是老陈,后端工程师,这事我做了不少年。密码存储方案他拍板 我尽量写成你照着做就能成的样子。
把借口放下。SHA512这套动作,我带过的人当天就能学会。
先把标准定死,再用工具批量处理,最后按硬指标筛,SHA512十分钟收工。
| 算法 | 输出长度 | 分组大小 | 典型用途 | 安全定位 |
|---|---|---|---|---|
| MD5 | 128位 | 512位分组 | 文件校验 | 不适合密码 |
| SHA-1 | 160位 | 512位分组 | Git历史校验 | 安全用途弃用 |
| SHA-256 | 256位 | 512位分组 | 数字签名与区块链 | 目前主流 |
| SHA-512 | 512位 | 1024位分组 | 高安全场景 | 64位机上更快 |
| CRC32 | 32位 | 流式计算 | 压缩包校验 | 非密码学算法 |
| bcrypt | 可变长度 | 自适应 | 密码存储 | 刻意算得慢 |
| SHA-3 | 256位 | 海绵结构 | 备选算法 | 设计路线不同 |
| HMAC | 256位 | 带密钥计算 | 接口签名 | 防数据篡改 |
| NTLM | 128位 | Windows域 | 旧系统认证 | 现代已弱化 |
哈希基础,照口令做
别被术语唬住,SHA512说到底就是哈希不可逆,从摘要反推不出原文,动手就懂。
顺序别乱:先加盐是在原文里混入随机串,让彩虹表失效,剩下的都是后话。
先把用哈希的场合理顺
文件校验
文件校验这种场子,记住下载文件校验就够了。
密码存储讨论
在密码存储讨论,备份比对,别想复杂。
下载完整性
下载完整性里最实用的一条:接口签名。
先把计算步骤理顺
- 选算法
校验用MD5,安全用SHA-256。数字签名里偷懒跳过这步,后面全得补。
- 输入原文或文件
动作要点:文本粘贴或文件上传,做不到位不算完。
- 对照摘要值
两边算出来比一比。文件校验里偷懒跳过这步,后面全得补。
- 看是否一致
动作要点:一致就是没被改,做不到位不算完。
- 记录用途
哪里用的什么算法。挂在公开主页里偷懒跳过这步,后面全得补。
算法对照不绕弯子
| 算法 | 输出长度 | 分组大小 | 典型用途 | 安全定位 |
|---|---|---|---|---|
| MD5 | 128位 | 512位分组 | 文件完整性校验 | 不再适合密码 |
| SHA-1 | 160位 | 512位分组 | 历史版本校验 | 安全用途已弃用 |
| SHA-256 | 256位 | 512位分组 | 数字签名 | 目前主流 |
| bcrypt | 可变 | 自适应 | 密码存储 | 刻意算得慢 |
教练只补一句:哈希管完整性,不管保密;存密码必须加盐加慢,选哪条路先看你数字签名最想保哪头。
使用误区,照口令做
以为哈希能解密
别它是单向的,解不了——这是新手在SHA512上栽得最多的地方。
加盐用固定值
等于没加,在数字签名这么干等于白忙,立刻改。
只对大小不内容
别文件大小一样内容不同——这是新手在SHA512上栽得最多的地方。
拿MD5存密码
彩虹表一撞一个准,在数字签名这么干等于白忙,立刻改。
常见疑问不绕弯子
SHA512:SHA-256多长?
答案不绕弯:256位,64个十六进制字符,照这个口径在数字签名用就行。
SHA512:哈希能反推吗?
直接说:不能,只能暴力试。SHA512的判断权在你,工具只负责给数。
SHA512:为什么密码要加盐?
答案不绕弯:防彩虹表批量撞库,照这个口径在数字签名用就行。
SHA512:MD5还能用吗?
直接说:文件校验可以,存密码不行。SHA512的判断权在你,工具只负责给数。
SHA512:MD5多少位?
直接说:128位,32个十六进制字符。SHA512的判断权在你,工具只负责给数。
使用细节,照口令做
- 老手都在做:别自己发明哈希,数字签名里特别管用。
- 文件校验用MD5或SHA256,现在就记进你的SHA512动作里。
- 硬要求:存密码用慢哈希。
- 老手都在做:盐值每个用户不同,数字签名里特别管用。
- 摘要两边分开算,现在就记进你的SHA512动作里。
- 硬要求:小改动看雪崩效应。
这个哈希值,照口令做
口令就到这。SHA512真正难的不是没选项,是你肯不肯现在就做第一组。