作为一种普通的方法,我总是习惯在数据库中保存密码的MD5,而有许多网站将MD5散列数据解码为其原始数据(使用彩虹数据库)。
我想知道修改MD5功能的输出是否更安全(例如省略MD5输出的最后一个字符来创建新的散列数据)?或者MD5背后的逻辑是否比每个修改版本更安全?
答案 0 :(得分:0)
也许您应该考虑使用不同的哈希算法?
https://security.stackexchange.com/questions/4789/most-secure-password-hash-algorithms
答案 1 :(得分:0)
不,这对于使您的密码更安全没有多大帮助。它通过默默无闻添加了一些安全性,但是当我们对密码进行哈希处理时,我们会为攻击者知道哈希值和算法的情况做好准备。
MD5的一般问题和推导问题是,它们的计算速度太快。使用通用硬件,您可以计算8Giga MD5/s,这使得强制执行过于简单。今天的密码破解工具不仅提供普通的MD5哈希,您还可以计算派生,例如开箱即用md5(strtoupper(md5($pass)))
。
对于密码的安全存储,您需要具有成本因子的缓慢哈希函数,如BCrypt,PBKDF2或SCrypt。当然,每个密码都应该加入一种独特的盐。