彩虹表别再凭感觉,在线测算给答案

我是老陈,后端工程师,这事我做了不少年。密码存储方案他拍板 我尽量写成你照着做就能成的样子。

三、二、一,动手。彩虹表不需要状态好,只需要先开始。

一句话结论

先把标准定死,再用工具批量处理,最后按硬指标筛,彩虹表十分钟收工。

彩虹表计算器,结果当场出来
算法输出长度分组大小典型用途安全定位
MD5128位512位分组文件校验不适合密码
SHA-1160位512位分组Git历史校验安全用途弃用
SHA-256256位512位分组数字签名与区块链目前主流
SHA-512512位1024位分组高安全场景64位机上更快
CRC3232位流式计算压缩包校验非密码学算法
bcrypt可变长度自适应密码存储刻意算得慢
SHA-3256位海绵结构备选算法设计路线不同
HMAC256位带密钥计算接口签名防数据篡改
NTLM128位Windows域旧系统认证现代已弱化

哈希基础不绕弯子

别被术语唬住,彩虹表说到底就是哈希不可逆,从摘要反推不出原文,动手就懂。

顺序别乱:先加盐是在原文里混入随机串,让彩虹表失效,剩下的都是后话。

拿下用哈希的场合的动作

文件校验

文件校验这种场子,记住下载文件校验就够了。

密码存储讨论

在密码存储讨论,备份比对,别想复杂。

下载完整性

下载完整性里最实用的一条:接口签名。

拿下计算步骤的动作

  1. 选算法

    校验用MD5,安全用SHA-256。下载完整性里偷懒跳过这步,后面全得补。

  2. 输入原文或文件

    动作要点:文本粘贴或文件上传,做不到位不算完。

  3. 对照摘要值

    两边算出来比一比。团队内部协作里偷懒跳过这步,后面全得补。

  4. 看是否一致

    动作要点:一致就是没被改,做不到位不算完。

  5. 记录用途

    哪里用的什么算法。安全测试里偷懒跳过这步,后面全得补。

算法对照,照口令做

算法输出长度分组大小典型用途安全定位
MD5128位512位分组文件完整性校验不再适合密码
SHA-1160位512位分组历史版本校验安全用途已弃用
SHA-256256位512位分组数字签名目前主流
bcrypt可变自适应密码存储刻意算得慢

教练只补一句:哈希管完整性,不管保密;存密码必须加盐加慢,选哪条路先看你数据备份最想保哪头。

使用误区不绕弯子

只对大小不内容

别文件大小一样内容不同——这是新手在彩虹表上栽得最多的地方。

拿MD5存密码

彩虹表一撞一个准,在数据备份这么干等于白忙,立刻改。

以为哈希能解密

别它是单向的,解不了——这是新手在彩虹表上栽得最多的地方。

加盐用固定值

等于没加,在数据备份这么干等于白忙,立刻改。

常见疑问,照口令做

彩虹表:MD5多少位?

直接说:128位,32个十六进制字符。彩虹表的判断权在你,工具只负责给数。

彩虹表:SHA-256多长?

答案不绕弯:256位,64个十六进制字符,照这个口径在数据备份用就行。

彩虹表:哈希能反推吗?

直接说:不能,只能暴力试。彩虹表的判断权在你,工具只负责给数。

彩虹表:为什么密码要加盐?

答案不绕弯:防彩虹表批量撞库,照这个口径在数据备份用就行。

彩虹表:MD5还能用吗?

直接说:文件校验可以,存密码不行。彩虹表的判断权在你,工具只负责给数。

使用细节不绕弯子

  • 老手都在做:别自己发明哈希,数据备份里特别管用。
  • 文件校验用MD5或SHA256,现在就记进你的彩虹表动作里。
  • 硬要求:存密码用慢哈希。
  • 老手都在做:盐值每个用户不同,数据备份里特别管用。
  • 摘要两边分开算,现在就记进你的彩虹表动作里。
  • 硬要求:小改动看雪崩效应。

这个哈希值不绕弯子

口令就到这。彩虹表真正难的不是没选项,是你肯不肯现在就做第一组。