【发布时间】:2011-11-27 06:36:50
【问题描述】:
我是这方面的新手,所以这个问题很可能很容易。我只是不太了解加盐。
不加盐和使用 sha1,您可以将密码散列为 sha1('password') 并验证用户,您只需比较 sha1_stored ==? sha1(user_input)。
使用 salting 和 sha1 将密码散列为 sha1('password' + salt),但我不确定如何验证它。
根据我的阅读,盐总是随机的。因此,如果您使用 sha1('password' + random_salt1),是否必须将 random_salt 存储在某处,因为当您验证 sha1('password' + random_salt1) == 时? sha1(user_input + random_salt2),你不能保证random_salt1 == random_salt2。还是 salt 像 site_key(一个随机的 salt,但整个站点只存储一个)?我知道盐如何提高安全性,但我不确定如何正确实现它,以便我可以验证我存储的内容(也不知道这一点)。那么有人可以向我解释一下,并可能给我一个加盐和验证字符串的例子吗?
【问题讨论】:
-
我会在security.stackexchange.com问这个问题
-
security.stackexchange.com/questions/3272/… 解释了如何存储盐并给出了一些关于散列的建议。
-
如果您需要实施指导,我同意 Mike 的观点 - 或者如果您想了解基本原理,请尝试 crypto.stackexchange.com
标签: security cryptography passwords sha1 salt