盐是附加在正面还是背面都没有区别。
以下因素会影响安全性
消化salt时无关紧要:前缀,后缀,中缀都会产生不同的哈希值,但达到击败彩虹表或其他预先散列字典攻击的目的相同。
我认为评论必须专门针对MD5中的漏洞,而不是一般的散列。我不明白细节,但它has to do with finding two prefixes that produce the same hash.
当有人对盐的使用有疑问时,我担心这是因为他们忙于(重新)发明他们真正不应该首先出现的东西。基于这个问题,我的建议是使用HMAC。
不像别人说的那样,这很重要!如果你关心使用HMAC
作为@einstein。
为什么前缀不好,因为可以计算校验和的中间状态直到给定的固定盐前缀。然后开始并行计算其余部分。总之,phrase+salt
比salt+phrase
更安全,但HMAC(salt, phrase)
甚至更好。
从技术上讲,只要盐是独特的并且不易猜测就没关系。就像我做的那样,不要犯错误存储盐。
“腌制”字符串的目的是以比MD5哈希更加个性化和独特的方式对其进行加扰。没有正确或错误的方法,只要你是唯一知道它是如何工作的人。它将以任一方式实现结果,即使生成的MD5哈希值与彩虹表不对应,以便轻松破解密码。