一次盐和服务器密码比较

时间:2011-09-21 22:12:57

标签: security hash login password-protection password-storage

我已经读过,验证用户的一种更安全的方法是在散列密码时使用一次盐。我没有得到的是:

如果客户端在每个会话中生成一个新的salt,那么每个会话的生成的salt +密码哈希值是否会不同?如果是这样,服务器如何能够将发送的密码与其存储的密码进行比较?有没有办法让服务器比较不同的哈希值,并且仍然能够辨别出使用了相同的密码?

(免责声明:我不是要重新发明轮子/编写登录协议(我知道,我知道:使用SSL / TLS)。我只是对登录协议的高级功能感到好奇)

2 个答案:

答案 0 :(得分:3)

当用户最初设置密码时,您只生成新的salt。然后将salt与密码哈希一起保存。

答案 1 :(得分:3)

您只需要生成一次盐,并且每次都可以更改密码。

客户不需要将盐存储在任何地方,甚至不知道。 salt将由服务器存储 - 以及散列。

建议您将哈希和salt存储在两个不同的数据库中。

相关问题