本人比较菜,目前使用的方案是1.在客户端COOKIES中保存用户ID和一个加密码(规则只有我知道)2.如果程序检测到客户端保存的COOKIES ID。就去跟数据库验证加密码,如果一致则返回对应用户的登录信息,否则返回FALSE1.用户访问每个页面都要去跟数据库验证一遍2.加密码虽然规则很复杂,但是保存在客户端依然存在被破解的可能性
3 回答
缥缈止盈
TA贡献2041条经验 获得超4个赞
cookie中怎么能够保存密码呢?
你的做法已经可以了,不过有如下几点建议:
1. 客户端可以保存两种数据,一种是原数据(比如user_id),一种是对所有原数据的签名(你所说的加密码)
2. 原数据的保存可以看具体情况保存原字符串或者可逆加密算法加密后的字符串
3. 针对所有的原数据的签名的算法,最好是不可逆的
4. 服务器端只要获取到原数据,重新计算签名,比如和cookie中的签名是否一致即可。
最简单的cookie的样子:
A=uid=123&sign=xxxxxxxx
cookie生成方法:
sign = md5(secure_key + uid);
cookie = 'uid=' + uid + '&sign=' + sign
secure_key 是一个私有的串,谁也不能告诉哦。
cookie校验的方法:
获取到uid和sign之后
sign == md5(secure_key + uid)
当然如果觉得md5不可靠的话,可以选择更好的算法。
白衣非少年
TA贡献1155条经验 获得超0个赞
一般这样的不是用$_SESSION变量的么,COOKIES肯定不能保存密码额。我一般是这样用的,用$_SESSION保存登陆状态,用$_COOKIES保存一个用户ID什么的。
- 3 回答
- 0 关注
- 117 浏览
添加回答
举报
0/150
提交
取消