盐和密码 - 前缀或后缀

时间:2009-05-13 03:32:01

标签: security encryption passwords salt

这是关于腌制需要散列的短语的问题。

我想知道将盐添加到短语或后缀更安全吗? 盐+短语或 短语+盐

我的问题来自comment上这篇文章的MD5s。我不确定我理解作者评论背后的原因。

5 个答案:

答案 0 :(得分:4)

盐是附加在正面还是背面都没有区别。

以下因素会影响安全性

  1. 你的盐是私有的(如果是的话,它是多么私密?)。越私有越好。这意味着,如果您可以避免在您的数据库中存储您的盐,即使您的数据库受到威胁,您也可以使您的系统免受暴力攻击。
  2. 你的盐是否随机每盐腌制?如果说你的数据库被泄露并且你的盐存储在数据库中,这有助于抵御彩虹表攻击。注意:如果存储的密码足够长,它们可以免受暴力攻击。
  3. 你的盐足够长吗?你的盐越久越安全。

答案 1 :(得分:1)

当你消化盐时无关紧要:前缀,后缀,中缀都会产生不同的哈希值,但达到了击败彩虹表或其他预先散列字典攻击的目的。

我认为评论必须专门针对MD5中的漏洞,而不是一般的散列。我不了解细节,但has to do with finding two prefixes that produce the same hash.

答案 2 :(得分:1)

当有人对盐的使用有疑问时,我担心这是因为他们忙于(重新)发明他们真正不应该首先出现的东西。基于这个问题,我的建议是使用HMAC。

答案 3 :(得分:0)

与其他人所说的不同,这很重要!并以@einstein(如果您愿意的话)使用HMAC

为什么前缀是错误的,因为可以计算直到给定的固定盐前缀的校验和的中间状态。然后开始并行计算其余部分。总之,phrase+saltsalt+phrase更安全,但是HMAC(salt, phrase)更好。

related reading

答案 4 :(得分:-2)

从技术上讲,只要盐是独特的并且不易猜测就没关系。只是不要像我一样犯错误存储盐。

“salting”字符串的目的是以比MD5哈希更加个性化和独特的方式对其进行加扰。没有正确或错误的方法,只要你是唯一知道它是如何工作的人。它将以任一方式实现结果,即使生成的 not 的MD5哈希值与彩虹表对应,以便轻松破解密码。