tp5框架使用cookie加密算法实现登录功能示例

来源:脚本之家  责任编辑:小易  

首先,我想知道的是题主是爸爸还是妈妈,如果是妈妈,那么事情可以这样解决。一、没有必要非辞职才能教好孩子做功课。如果你本身不想辞职那就更没有这个必要。既然是家里人的共同心声,那么事情就简单多了。即利用晚上不上班的时间和你周末休息或轮休的时间都可以,尽可能让家里其它人多替你分担家务,让你能抽出更多的时间来辅导孩子做作业。我家里就这种情况,我晚上负责辅导孩子做功课以及洗碗筷等灶台卫生,我老公负责做饭和洗衣服。二、在一年级时辛苦一点,孩子打好基础了,以后就不需要你那么劳心劳力了。我家大宝上一年级时,我每天都辅导她做功课,到了二年级她就不需要我了,除了有新知识点注入需要我提点外,其它的都不用我操心了。如

本文实例讲述了tp5框架使用cookie加密算法实现登录功能。分享给大家供大家参考,具体如下:

这个问题,我三岁的妞妞没问过,但是我给她主动展示过我的刀口.我还让她摸过.然后我给她讲了,医生划开我的肚皮,从肚子这儿把你掏出来了。还怪疼的.她应该从心里觉得我辛苦了,她挺心疼我的.出门会说,妈妈注意安全,路上车多.不管她吃什么东西,我说分享,她会拿给我吃.我生病了,她会给我端来白开水让我喝,让我睡一觉就好了。有段时间我爱失眠喝红酒,以至于我喝感冒药的时候,她会说,妈妈,怎么老喝酒啊。家里人有指责我哪一块儿做得不好的,她会站出来说,你们都很吵安静一会儿.我特别喜欢抱她,她都很开心和我拥抱.她奶奶喊她她不爱说话,可是在我面前倒没有,说话也很注意语气什么的.总而言之,这个问题,可以用她能接受的方式

首先,我们为什么要对cookie加密?

四个字:正浓阳匀。“正”指的是色调的范围,也就是说比如绿色他的主色和次色的比例,有纯正的绿色就不要混杂其他颜色。有些是偏蓝,偏灰,偏灰的话就会形成油青色,他价值就会降低。越纯正的绿色他达到“正”的标准要高一些。“浓”指的是翡翠颜色的一个深浅,还是拿翡翠的绿色来讲,翡翠绿色最好的浓度是在百分之70-80之间。如果浓度过浓到百分之90他的颜色就会偏深、偏暗,就达不到我们所理想的、非常棒的一个颜色。“阳”指的是翡翠颜色鲜艳明亮的程度,能不能给人带来一种明亮的感觉,感觉的多少,就是对“阳”字的判定。“匀”指的是翡翠分布的时候一个均匀的程度。一般翡翠的颜色要分布的很均匀的话是很难达到的。所以这个评判因素

之所以要对cookie加密是以为cookie是保存在客户端的,稍微懂一点技术的人都能找到cookie的保存位置,如果我们保存cookie的时候没有加密,而是明文保存的话也就是说我们的用户名和密码就完全暴露了,这是一个非常大的安全隐患,所以必须加密cookie。

不是明星,是“抖音女神”莉哥。这个女人已经膨胀的在直播中卖自己的微信号了,哎哟哟,真当自己是大明星了,没刷到十个穿云箭(价值3000元)就不配有她的微信了!呵呵哒,??????这个网红,火的莫名其妙,唱歌吧,一般般音还不准,长相吧,你随便耍耍抖音比她美一百倍的一大把,声音吧普通,那首“让我做你的眼睛,这样你才看得清”,不好意思双眼5.0,你可能会挡住我的视线!最让我反感的就是每次唱歌唱着唱着莫名笑起来,ok,这个角度漂亮你就笑吧,这也就算了,每个视频都剪头发,滤镜重的都看不清鼻梁了还死劲的撩自己发色都浅了的头发,甚至扎丸子头也撩头发,好的,撩头发好看你就弄吧,无语,下面这张丸子头,油海都没得,

其次,我们不管要对cookie加密,还要考虑到当我们使用的时候要对加密后的cookie进行解密处理,得到正确的用户名和密码后才能做自动登录一类的功能,下面看看我们的加密方案:

1:在配置文件config中添加

'encryption_key' =>'d441d33a65d31dbf0a8016a85c71a5b3',

2:在common文件中添加

//type 0:加密 1:解密 function encryption($value,$type=0){ $key=config('encryption_key'); if($type == 0){//加密 return str_replace('=', '', base64_encode($value ^ $key)); }else{ $value=base64_decode($value); return $value ^ $key; } }

3:在模型中加密代码

public function login($data,$type=0){ $userData=array(); $userData['username']=trim($data['username']); $userData['password']=md5($data['password']); //验证用户名或邮箱或手机号是否存在 $users=db('user')->where(array('username'=>$userData['username']))->whereOr(array('email'=>$userData['username']))->whereOr(array('mobile_phone'=>$userData['username']))->find(); // dump($users); die; if($users){ if($users['password'] == $userData['password']){ session('uid',$users['id']); session('username',$users['username']); //写入会员等级及折扣率 $points=$users['points']; $memberLevel=db('member_level')->where('bom_point','<=',$points)->where('top_point','>=',$points)->find(); session('level_id',$memberLevel['id']);//等级id session('level_rate',$memberLevel['rate']);//等级折扣率 //写入cookie if(isset($data['remember'])){ $aMonth=30*24*60*60; $username=encryption($users['username'],0); $password=encryption($data['password'],0); cookie('username', $username, $aMonth, '/'); cookie('password', $password, $aMonth, '/'); } $arr=[ 'error'=>0, 'message'=>"", ]; if($type == 1){ return $arr; }else{ return json($arr); } }else{ $arr=[ 'error'=>1, 'message'=>"<i class='iconfont icon-minus-sign'></i>用户名或者密码错误", 'url'=>'', ]; if($type == 1){ return $arr; }else{ return json($arr); } } }else{ $arr=[ 'error'=>1, 'message'=>"<i class='iconfont icon-minus-sign'></i>用户名或者密码错误", 'url'=>'', ]; if($type == 1){ return $arr; }else{ return json($arr); } } }

4:在控制器中解密代码

public function checkLogin(){ $uid=session('uid'); if($uid){ $arr['error']=0; $arr['uid']=$uid; $arr['username']=session('username'); return json($arr); }else{ if(cookie('username') && cookie('password')){ $data['username']=encryption(cookie('username'),1); $data['password']=encryption(cookie('password'),1); $loginRes=model('user')->login($data,1); if($loginRes['error'] == 0){ $arr['error']=0; $arr['uid']=$uid; $arr['username']=session('username'); return json($arr); } } $arr=array(); $arr['error']=1; return json($arr); } }

更多关于thinkPHP相关内容感兴趣的读者可查看本站专题:《ThinkPHP入门教程》、《thinkPHP模板操作技巧总结》、《ThinkPHP常用方法总结》、《codeigniter入门教程》、《CI(CodeIgniter)框架进阶教程》、《Zend FrameWork框架入门教程》及《PHP模板技术总结》。

希望本文所述对大家基于ThinkPHP框架的PHP程序设计有所帮助。

扩展阅读,根据您访问的内容系统为您准备了以下内容,希望对您有帮助。

ThinkPHP5设置Cookie有何讲究

Cookie::set()

在设置cookie 的时候它的值是经过序列化+base64_encode加密后存储的

cookie()则是直接写入cookie的

在做Thinkphp和UC同步的时候,刚开始应用登陆同步UC是很正常的,但是反过来的时候却出现了uc.php不能写入cookie的情况。后来发现原来是作用域在作怪。

setcookie('uid', base64_encode(serialize($uid)), time() + 3600, '/');

base64_encode(serialize($uid))这么写的原因是我网站获取cookie的时候用的是Cookie::get("uid");

ThinkPHP5设置Cookie有何讲究

Cookie::set()

在设置cookie 的时候它的值是经过序列化+base64_encode加密后存储的

cookie()则是直接写入cookie的

在做Thinkphp和UC同步的时候,刚开始应用登陆同步UC是很正常的,但是反过来的时候却出现了uc.php不能写入cookie的情况。后来发现原来是作用域在作怪。

setcookie('uid', base64_encode(serialize($uid)), time() + 3600, '/');

base64_encode(serialize($uid))这么写的原因是我网站获取cookie的时候用的是Cookie::get("uid");!

  • 本文相关:
  • thinkphp3.x中cookie方法的用法分析
  • thinkphp中session和cookie无效的解决方法
  • thinkphp的cookie和session冲突造成cookie不能使用的解决方法
  • thinkphp5框架结合mysql实现微信登录和自定义分享链接与图文功能示例
  • thinkphp5项目中实现qq第三方登录功能
  • thinkphp中u方法加密传递参数功能示例
  • thinkphp实现的rsa非对称加密类示例
  • thinkphp微信开发(消息加密解密)
  • thinkphp微信开之安全模式消息加密解密不成功的解决办法
  • php隐形一句话后门,和thinkphp框架加密码程序(base64_decode)
  • yii视图cgridview实现操作按钮定义地址示例
  • thinkphp中使用ajax接收json数据的方法
  • php实现自动获取生成文章主题关键词功能的深入分析
  • thinkphp3.2框架操作redis的方法分析
  • lotusphp笔记之:基于objectutil组件的使用分析
  • php实现webservice的简单示例和实现步骤
  • php连接sftp并下载文件的方法教程
  • php循环创建目录示例分享(php创建多级目录)
  • 我整理的php 7.0主要新特性
  • laravel自定义分页的实现案例offset()和limit()
  • ThinkPHP5设置Cookie有何讲究
  • ThinkPHP5设置Cookie有何讲究
  • 免责声明 - 关于我们 - 联系我们 - 广告联系 - 友情链接 - 帮助中心 - 频道导航
    Copyright © 2017 www.zgxue.com All Rights Reserved