通过Cookie来让用户自动登录,对cookie的加密思路

作者: JONE 分类: PHPer 发布时间: 2017-11-15 11:43

存储cookie的方法
// 生成一个随机数
$key = rand(0, 65535);
//然后把$key存起来,每个用户都不同的
//①把登录用户的用户名存入cookie中 键值对如下
setcookie(‘username’, $username, xxx);
//②把$ke存入cookie中 键值对如下
setcookie(‘key’, $key, xxx);
//③把 用户名+随机数$key+用户端IP+用户使用的浏览器,操作系统等信息 拼接成一串字符串,然后通过 sha1(哈希算法加密,不可逆加密算法),然后以如下格式存入cookie中
setcookie(‘sig’, sha1($username . $key . $_SERVER[‘REMOTE_ADDR’] . $_SERVER[‘HTTP_USER_AGENT’]), xxx);

验证的话:
$logged = false;
// 在cookie中读取用户名
$key = $_COOKIE[‘username’];
// 在cookie中读取对应的$key值
$key = $_COOKIE[‘key’];
//判断cookie中 的sig字符串与当前生成的sha1字符串是否一致,一致的话则代表是同一用户,则允许该用户自动登录
if (sha1($_COOKIE[‘username’] . $key . $_SERVER[‘REMOTE_ADDR’] . $_SERVER[‘HTTP_USER_AGENT’]) == $_COOKIE[‘sig’]) {
$logged = true;
}

 

还有把密码也加进去,这样密码修改以后,验证也会失效,用来防止密码泄漏
sha1($username . $password . $key . $ip . $user_agent) 这样