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