我一直很好奇......对密码进行加盐以进行哈希处理时,前缀还是后缀哪个更好?为什么?或者只要你加盐就没关系吗?
解释一下:我们现在(希望)都知道我们应该salt http://en.wikipedia.org/wiki/Salt_(cryptography)密码,然后将其散列存储在数据库中[Edit:所以你可以避免类似的事情杰夫·阿特伍德最近发生了什么事 http://blog.codinghorror.com/i-just-logged-in-as-you-how-it-happened/]。通常,这是通过在将盐传递给哈希算法之前将盐与密码连接起来来完成的。但示例有所不同...一些示例在密码之前添加盐。一些例子添加盐after密码。我什至见过一些人试图把盐放在中间。
那么哪种方法更好,为什么?有没有一种方法可以减少哈希冲突的机会?我的谷歌搜索没有找到关于这个主题的像样的分析。
Edit:伙计们,答案很好!抱歉我只能选择一个答案。 :)
前缀或后缀无关紧要,它只是为密码添加一些熵和长度。
你应该考虑以下三件事:
- 您存储的每个密码的盐必须不同。 (这是一个很常见的误解。)
- 使用加密安全的随机数生成器。
- 选择足够长的盐。想想生日的问题。
有一个优秀的戴夫·谢罗曼的回答 https://stackoverflow.com/questions/536584/non-random-salt-for-password-hashes/536756#536756另一个问题为什么您应该使用随机生成的盐而不是用户名(或其他个人数据)。如果你遵循这些建议,那么你把盐放在哪里并不重要。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)