哈希盐的复杂性

时间:2011-01-28 23:51:44

标签: php security hash salt

使用有什么好处:

sha1($long_unpredictable_randomly_generated_salt.$password.$global_salt)

结束

sha1(sha1($username).$password.$global_salt)

唯一的盐显然存储在数据库中,而全局盐位于服务器上的配置文件中。

我知道salt的purpsoe只是唯一的,并且防止预先计算的哈希表..所以我认为没有理由sha1($username)生成的长哈希不够好......但是因为安全性是非常重要的是,我想我会向那些可能更了解的人提出有关信息的建议: - )

1 个答案:

答案 0 :(得分:4)

缺点是用户名大多是已知的,所以当有人知道你编写的这个“公式”时,他只能计算sha1(user_to_hack),这部分将没有任何额外的好处。事实上,如果您在这种情况下使用sha1(username)username,则无关紧要。

在另一种情况下,你使用的是一个未暴露的值,所以即使有人知道你的公式(现在每个人都知道),在任何使用之前,他仍然需要那种独特盐的价值。他们,所以他们需要到你的数据库。我假设你为每个用户组成了一个独特的盐?

你可能还需要获取数据,所以独特的盐也可能更快,因为你不需要计算用户名的哈希值。

但无论如何,两者都非常安全,但只有你能很好地实现实际的登录程序。我不担心现在使用哪一个。