请评论这种存储用户密码的方法......

时间:2011-04-17 15:51:16

标签: php security encryption passwords md5

$storePassword = md5Hash($salt, $userActuallyPassword);

当用户分配密码时,我将生成一个salt,这是一个十位数的随机字符串,我使用md5和userActuallyPassword,并且我存储salt和storePassword,在商店内用户实际密码,这是一个这样做的好方法?对此有何评论?

3 个答案:

答案 0 :(得分:5)

这几乎是好的。

但是,你不应该使用MD5,你应该使用非ASCII盐。

Instead, use bcrypt

答案 1 :(得分:1)

尝试使用更严格研究的方法,例如PBKDF2。你仍然会存储一个哈希和一个盐,你可以选择自己的哈希算法,但你会处理字典攻击,彩虹攻击和其他各种问题。您可以在hash_hmac()函数的评论中找到一个很好的实现。

答案 2 :(得分:1)

几乎正确:

$storePassword = $salt . md5Hash($salt, $userActuallyPassword);

而不是md5,你最好使用SHA256或BCrypt Hash 此外,十位随机字符串不具有非常大的熵,您可以通过使用128个随机位而不是数字来改进。