MD5安全性好吗?

时间:2011-07-21 10:01:18

标签: security encryption md5

我是新编码所以也许我已经错过了md5的含义。 但是从我所经历的MD5加密到每个单词的“静态”。静态我的意思是你总会找到相同的结果,例如md5(“hello”)。这让我觉得使用库是高度可逆的。

如果为md5(“hello”)分配了一个数字(示例5),并且该字符串例如

,该怎么办?

xbuIdSjsdsjsd44s64sd是它的加密。等于5 但是如果 sfoiefef465f4ze4f6fe也是它的加密方式。并且也等于5

因为数学计算两者都以相同的结果结束。那会是动态加密吗?

我想,但是我告诉你我这是一个新手,所以这些只是困扰我的问题, 我认为有权访问数据库md5密码的人可以通过测试单词并将它们存储为库来轻松地反转它们。

你觉得男人们怎么样? 还有md5的替代品吗?

感谢任何帮助或启发

3 个答案:

答案 0 :(得分:8)

对于存储密码,不包括md5和SHA1 / 2的快速哈希函数(即使在加盐时)也是可以接受的。您需要使用慢速哈希,通常以Key-Derivation-Function的形式来减慢暴力。 PBKDF2和bcrypt是很受欢迎的选择。您还应该使用每用户随机盐。

答案 1 :(得分:5)

这些确实是合理的担忧。您可能会发现以下文章很有趣:

但MD5被安全专业人士视为“破碎”。这取决于完全你的要求是什么:MD5可能是合适的,但SHA-2 family之类的更安全的哈希可能是更明智的选择,甚至可能是{{3}等密钥加强技术(PBKDF2)。

请注意,单独选择哈希算法不能被视为安全或不安全。 以经过验证的,久经考验的方式使用哈希算法非常重要。

答案 2 :(得分:2)

MD5是否可以安全使用取决于您使用它的方式以及方式。

对于消息完整性,MD5 不适合,因为存在攻击以查找具有相同散列的备用消息。

为了在数据库中存储密码,MD5 可接受,假设您正确salt。对于这种用法,已知的攻击完全不重要 如果您处于偏执模式,您也可以使用更复杂的方案,如bcrypt,但对于大多数人来说,存储盐渍密码就足够了。它可以防止最简单,最明显的攻击,易于实现,难以做错,并且开销很低。

请注意,在正常情况下,具有相同哈希值的两个不同密码并不是真正的问题。发生这种情况,那是什么。

话虽如此,使用SHA而不是MD5并不会花费额外的费用。它有更多的位,没有已知的攻击,并且每半个体面的库都支持它。