我正在构建一个登录脚本,我希望用户能够勾选“记住我”按钮。 我已阅读此页面: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作为一个长伪随机字符串?
答案 0 :(得分:0)
起初并不明显,但如果它纯粹是某种随机字符串,并且在MD5哈希之前没有与之绑定的身份 - 那么你可能会遇到两个用户最终使用相同身份验证密钥的问题。也就是说,MD5可能会对你有用,但技术上应该逐步淘汰(已发现许多碰撞使其不再可行) - 尝试寻找更新的单向散列,例如SHA-2