客户端程序(通过它我无法控制)通过发送密码进行认证,散列为SHA1(password)
。我很不愿意在我的数据库中存储使用SHA1的密码散列,所以我建议将数据库中的密码存储为散列为SHA256(SHA1(password))
(其中密码使用PBKDF-2或类似的东西进行多次迭代散列)。使用SHA1作为链中最内部散列的散列
我的问题是:在这种情况下,使用SHA1的最内部散列值有什么不安全感?我意识到碰撞的可能性会增加,但由于这仅仅是用于在数据库中存储密码,所以我不认为我需要担心这一点。还有什么我失踪?
对于这个问题(可能)更正确的答案,请尝试http://crypto.stackexchange.com/ –