我试图在cookie中保存原始sha1哈希,但当我将其保存在cookie中时,我得到一个不同的字符串。
$password = "test";
$hashPassword = sha1($password, TRUE);
$cookie_userPassword= "cookie_userPassword";
$userPassword_value = $hashPassword;
setrawcookie($cookie_username, $userPassword_value, time() + (86400 * 30), "/");
echo $_cookie_username;
在我的代码中,我将散列密码保存在数据库中,但数据库中的散列密码与cookie中的散列密码不同。
答案 0 :(得分:1)
看起来您正在尝试实施自己的身份验证/会话系统。作为一个犯过这个错误的人,请在这个问题上采取我擅长的智慧而不是。我知道这不是你想要的答案,你只是想让你的代码工作,这样你就可以继续下一部分了。请不要。
有许多功能和支持的身份验证库已经花时间充分了解身份验证系统的安全隐患,并为您完成了所有艰苦的工作。
作为个人推荐,我建议您查看Sentinel(https://cartalyst.com/manual/sentinel/2.0#installation),它也可以处理繁重的注册和激活以及您可能会发现以后需要的一些其他事情。
关于你试图做什么,在密码中输入密码(甚至哈希)的问题在于它存储在客户机的机器上,这意味着它不受你的控制。散列密码永远不会离开您的系统。我认为阅读PHP The Right Way - Password Hashing时也值得你这么做。