哈希函数加密 - 数据库如何知道密码是否正确?

时间:2016-01-06 16:54:33

标签: encryption hash

我很难理解密码加密中使用的散列函数。假设用户注册网站,密码通过哈希函数和摘要登陆数据库。因此,实际密码不存储在数据库中。现在,当用户想要登录时,他输入密码。数据库如何知道密码是否正确?登录时输入的密码是否再次通过哈希函数?但是我们会有两个不同的摘要,那么它是如何进行的呢?

1 个答案:

答案 0 :(得分:2)

详细说明@ArtjomB。

通常使用哈希密码保存salt和迭代计数,有时在哈希前面用分隔符连接。

然后可以将相同的salt和迭代计数应用于密码尝试以生成匹配的哈希值。

注意:盐和迭代计数都不需要保密。

使用的一个更好的功能是PBKDF2(基于密码的密钥派生功能2),而不是原始哈希函数,例如SHA256或带有SHA256的HMAC。不应使用MD5和SHA1函数。