收藏这份SHA1在线测算,文件校验直接用
写这篇的是老陈,后端工程师。正因为密码存储方案他拍板,所以这篇只写能落地的部分。
先做二十个再说。SHA1不是想出来的,是在文件校验里一遍遍练出手感的。
一句话结论
先把标准定死,再用工具批量处理,最后按硬指标筛,SHA1十分钟收工。
动手试试:SHA1工具
| 算法 | 输出长度 | 分组大小 | 典型用途 | 安全定位 |
|---|---|---|---|---|
| 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域 | 旧系统认证 | 现代已弱化 |
拿下哈希基础的动作
别被术语唬住,SHA1说到底就是哈希不可逆,从摘要反推不出原文,动手就懂。
相同输入永远得到相同摘要——这条做到,文件校验里你已经赢过八成的人。
用哈希的场合,照口令做
数字签名
数字签名这种场子,记住密码存储讨论就够了。
数据备份
在数据备份,数字签名验证,别想复杂。
安全测试
安全测试里最实用的一条:数据完整性检查。
计算步骤,照口令做
- 选算法
校验用MD5,安全用SHA-256。安全测试里偷懒跳过这步,后面全得补。
- 输入原文或文件
动作要点:文本粘贴或文件上传,做不到位不算完。
- 对照摘要值
两边算出来比一比。发给客户里偷懒跳过这步,后面全得补。
- 看是否一致
动作要点:一致就是没被改,做不到位不算完。
- 记录用途
哪里用的什么算法。挂在公开主页里偷懒跳过这步,后面全得补。
先把算法对照理顺
| 算法 | 输出长度 | 分组大小 | 典型用途 | 安全定位 |
|---|---|---|---|---|
| MD5 | 128位 | 512位分组 | 文件完整性校验 | 不再适合密码 |
| SHA-1 | 160位 | 512位分组 | 历史版本校验 | 安全用途已弃用 |
| SHA-256 | 256位 | 512位分组 | 数字签名 | 目前主流 |
| bcrypt | 可变 | 自适应 | 密码存储 | 刻意算得慢 |
教练只补一句:哈希管完整性,不管保密;存密码必须加盐加慢,选哪条路先看你文件校验最想保哪头。
拿下使用误区的动作
加盐用固定值
等于没加,在文件校验这么干等于白忙,立刻改。
只对大小不内容
别文件大小一样内容不同——这是新手在SHA1上栽得最多的地方。
拿MD5存密码
彩虹表一撞一个准,在文件校验这么干等于白忙,立刻改。
以为哈希能解密
别它是单向的,解不了——这是新手在SHA1上栽得最多的地方。
先把常见疑问理顺
SHA1:为什么密码要加盐?
答案不绕弯:防彩虹表批量撞库,照这个口径在文件校验用就行。
SHA1:MD5还能用吗?
直接说:文件校验可以,存密码不行。SHA1的判断权在你,工具只负责给数。
SHA1:MD5多少位?
直接说:128位,32个十六进制字符。SHA1的判断权在你,工具只负责给数。
SHA1:SHA-256多长?
答案不绕弯:256位,64个十六进制字符,照这个口径在文件校验用就行。
SHA1:哈希能反推吗?
直接说:不能,只能暴力试。SHA1的判断权在你,工具只负责给数。
拿下使用细节的动作
- 老手都在做:盐值每个用户不同,文件校验里特别管用。
- 摘要两边分开算,现在就记进你的SHA1动作里。
- 硬要求:小改动看雪崩效应。
- 老手都在做:别自己发明哈希,文件校验里特别管用。
- 文件校验用MD5或SHA256,现在就记进你的SHA1动作里。
- 硬要求:存密码用慢哈希。
拿下这个哈希值的动作
口令就到这。SHA1真正难的不是没选项,是你肯不肯现在就做第一组。