为给定范围(长度为x的字符串)创建所有可能哈希的彩虹表是一项艰巨的任务,但有些已经为MD5等方法组成。那么,对于任何给定的加密哈希,组成一个已知冲突表肯定是一个指数级更大的任务吗?
是否有可能使用冲突来帮助保护系统,因为它们比哈希本身更难找到?
也许不是因为这些内容很少而且发现的那些是一个小集合,实际上是为了创建一个碰撞彩虹表的一小组排列?
大声思考。这可能有用吗?
答案 0 :(得分:1)
提高MD5或任何加密哈希函数的安全性的典型解决方案是迭代。
添加盐对提高安全性几乎没有作用。而是使用随机盐在HMAC上迭代大约100毫秒的持续时间并使用散列保存盐。使用PBKDF2
(又名Rfc2898DeriveBytes
),password_hash
,Bcrypt
等功能和类似功能。重点是让攻击者花费大量时间通过暴力破解密码。
这不是指数级的,而是攻击者工作因素的大幅增加。我的笔记本电脑可以在1us以下执行20字节的SHA512操作,因此100ms的工作系数增加了5个数量级。