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

315次阅读
没有评论

存储 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;}
正文完
有偿技术支持加微信
post-qrcode
 
评论(没有评论)
验证码