【发布时间】:2016-04-01 01:38:54
【问题描述】:
我使用pbkdf2 对密码进行加盐和哈希处理。我知道盐必须是未加密且可访问的,因此我可以在验证中再次使用它。每个密码的盐必须是可访问的,这样我就可以对要验证的密码进行加盐和哈希处理,并将其与存储的密码进行比较。
我想像这样储存盐
假设 salt 始终是一个固定长度的字符串,例如 10 个字符
finalPassword = salt + password;
//save finalPassword in the db
然后去验证
salt = getFirst10CharsOf (finalPassword);
hash to-be-validated password with that salt
compare hashed password with the saved one
我的问题是,如果黑客足够聪明,可以获取我的散列密码,那么是什么阻止她看到我的代码中的 getFirst10CharsOf 部分并获取一些盐,以便她可以轻松解密几个散列?
我发现了很多理论,但我不知道如何在实践中安全地储存盐。所以它们总是可以只访问验证码,而不是每个人。
谢谢
【问题讨论】:
-
这个问题似乎是另一个SO Question的延伸。
-
@zaph 是的,它在盐部分指定,并询问我保存盐的想法是否正确。
标签: hash passwords password-protection salt