首页 > 解决方案 > 我应该如何真正节省盐分

问题描述

我对安全性和密码散列进行了大量研究,但有一件事似乎有很多意见。如何保存盐。我希望有这方面专业知识的人可以就此事发表专业意见。我应该将盐存储在数据库中吗?在单独的文件中?它们应该与密码在同一个数据库中吗?

谢谢您的帮助。

标签: javascripthash

解决方案


每个用户应该有一个随机盐(不要对每个用户使用相同的盐)。每次用户创建帐户或更改密码时,都应使用新的随机盐对密码进行哈希处理。盐应该与哈希一起存储在用户帐户表中。

将盐添加到密码中,并使用标准密码散列函数对其进行散列。将盐和哈希都保存在用户的数据库记录中。

要验证密码,请从数据库中检索用户的 salt 和 hash。将盐添加到给定的密码并使用相同的散列函数对其进行散列。

将给定密码的哈希值与数据库中的哈希值进行比较。如果它们匹配,则密码正确。否则,密码不正确。

更多信息在这里


推荐阅读