将散列函数存储为散列密码的一部分是不好的做法吗?

时间:2013-09-12 20:48:47

标签: php mysql hash passwords salt

在crackstation.net上使用php source code进行散列+ salting,返回的散列包括使用的散列算法。我存储从我的数据库中的create_hash函数返回的哈希。存储此信息是不好的做法吗?这会给黑客一个优势吗?

2 个答案:

答案 0 :(得分:3)

我认为这是一种很好的做法。这意味着如果您升级散列函数(更安全的话),新用户将立即使用新的散列函数。

现在,您无法立即对旧散列函数的用户进行rehash,因为您需要密码来执行此操作,并且无法从其散列状态检索它。相反,当这样的用户登录时,您使用他们的密码来存储新的哈希列,并根据用户帐户重置哈希函数。

因此,通过这样的配置,用户在登录时将慢慢转移到更安全的系统上。

答案 1 :(得分:1)

我不会说这是一种不好的做法。散列函数通常可以从输出散列的性质(例如字符串长度等)中识别出来,因此您可能不会告诉攻击者他们无法从散列中找出任何东西。