使用持久cookie验证用户。哈希&盐必要吗?

时间:2013-03-20 01:03:41

标签: authentication cookies hash

我正在构建一个登录脚本,我希望用户能够勾选“记住我”按钮。 我已阅读此页面:http://blog.themeforest.net/tutorials/working-with-sessions-and-cookies-in-php-and-mysql/

他们建议通过将随机字符串与用户名连接起来创建一个auth_key,然后用盐对其进行哈希处理。

$cookie_auth= rand_string(10) . $username;
$auth_key = md5($salt . $cookie_auth);
$auth_query = mysql_query("UPDATE users SET auth_key = '" . $auth_key . "' WHERE username = '" . $username . "'");

我只是想知道,做第1行和第1行的重点是什么? 2?你能不能只跳过salt和hash,只需创建$ auth_key作为一个长伪随机字符串?

1 个答案:

答案 0 :(得分:0)

起初并不明显,但如果它纯粹是某种随机字符串,并且在MD5哈希之前没有与之绑定的身份 - 那么你可能会遇到两个用户最终使用相同身份验证密钥的问题。也就是说,MD5可能会对你有用,但技术上应该逐步淘汰(已发现许多碰撞使其不再可行) - 尝试寻找更新的单向散列,例如SHA-2