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

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

数据库不错明文密码,存的也是加密后的,两个加密后的对比,一样就通过了啊,不过密码建议总更安全的加密方式www.zgxue.com防采集请勿采集本网。

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

Secure 获取或设置一个值,该值指示是否使用安全套接字层(SSL)(即仅通过 HTTPS)传输 Cookie。加密的话可以使用MD5之类的加密算法

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

也许对你有帮助!http://hi.baidu.com/wenlixmh/blog/item/931aab3be82f5ae8b211c7b5.html

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

可以使用Cookie记录用户的ID,这样当你往“购物篮”中放了新东西时,网站就能记录下来,并在网站的数据库里对应着你的ID记录当你“买单”时,网站通过ID检索数据库中你的所有选择就能知道你的“购物篮”里

其次,我们不管要对cookie加密,还要考虑到当我们使用的时候要对加密后的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程序设计有所帮助。

cookie 可以加密,但加密后的数据不能被 js 使用如果提供 js 版的解密函数,那么加密就没有任何意义了session 无需加密,因为他保存于服务器端。如果连你自己的服务器的安全你都不能保证,干脆就不要做web开发了内容来自www.zgxue.com请勿采集。


  • 本文相关:
  • thinkphp3.x中cookie方法的用法分析
  • thinkphp中session和cookie无效的解决方法
  • thinkphp的cookie和session冲突造成cookie不能使用的解决方法
  • thinkphp5框架结合mysql实现微信登录和自定义分享链接与图文功能示例
  • thinkphp5项目中实现qq第三方登录功能
  • thinkphp中u方法加密传递参数功能示例
  • thinkphp实现的rsa非对称加密类示例
  • thinkphp微信开发(消息加密解密)
  • thinkphp微信开之安全模式消息加密解密不成功的解决办法
  • php隐形一句话后门,和thinkphp框架加密码程序(base64_decode)
  • php curl实现抓取302跳转后页面的示例
  • php-fpm重启导致的程序执行中断问题详解
  • php提取身份证号码中的生日日期以及验证是否为成年人的函数
  • php+jquery 注册模块的改进(三):更新到smarty3.1
  • php rsa加密解密使用方法
  • 如何使用gdb调试php程序
  • laravel5.2实现区分前后台用户登录的方法
  • php封装json通信接口详解及实例
  • 浅析yii2集成富文本编辑器redactor实例教程
  • php metaphone()函数及php localeconv() 函数实例解析
  • session cookie 怎么实现加密
  • javaweb记住密码cookie用md5加密?
  • //加密cookie已生成
  • cookie值为什么要加密
  • asp.net(c#) 中如何对cookie进行加密?
  • 高分悬赏~ 求ASP.NET cookie 加密的代码
  • 什么是cookie数据
  • 在web中使用cookie记住密码
  • 怎么解决//加密cookie已生成这个问题
  • 请给一个php cookie 加密类,或者代码!
  • 网站首页网页制作脚本下载服务器操作系统网站运营平面设计媒体动画电脑基础硬件教程网络安全php基础php技巧php实例php文摘php模板首页php编程php实例thinkphp入门教程thinkphp模板操作技巧总结thinkphp常用方法总结codeigniter入门教程ci(codeigniter)框架进阶教程zend framework框架入门教程php模板技术总结thinkphp3.x中cookie方法的用法分析thinkphp中session和cookie无效的解决方法thinkphp的cookie和session冲突造成cookie不能使用的解决方法thinkphp5框架结合mysql实现微信登录和自定义分享链接与图文功能示例thinkphp5项目中实现qq第三方登录功能thinkphp中u方法加密传递参数功能示例thinkphp实现的rsa非对称加密类示例thinkphp微信开发(消息加密解密)thinkphp微信开之安全模式消息加密解密不成功的解决办法php隐形一句话后门,和thinkphp框架加密码程序(base64_decode)php curl实现抓取302跳转后页面的示例php-fpm重启导致的程序执行中断问题详解php提取身份证号码中的生日日期以及验证是否为成年人的函数php+jquery 注册模块的改进(三):更新到smarty3.1php rsa加密解密使用方法如何使用gdb调试php程序laravel5.2实现区分前后台用户登录的方法php封装json通信接口详解及实例浅析yii2集成富文本编辑器redactor实例教程php metaphone()函数及php localeconv() 函数实例解析php获取数组长度的方法(有实例)微信公众平台实现获取用户openid教你如何使用php session使用php生成二维码的两种方法(带php发送get、post请求的6种方法简php中把stdclass object转array的微信公众平台网页授权获取用户基laravel框架数据库curd操作、连贯php字符串的连接的简单实例php删除数组中空值的方法介绍php中字符串和整数比较的操作方法php使用多个进程同时控制文件读写示例mysql 性能的检查和优化方法php操作mysqli(示例代码)laravel 中使用 vue.js 实现基于 ajax 的php实现姓名根据首字母排序的类与方法(实php hash算法:times33算法代码实例zend framework教程之模型model基本规则和laravel框架模板继承操作示例yii 实现数据加密和解密的示例代码
    免责声明 - 关于我们 - 联系我们 - 广告联系 - 友情链接 - 帮助中心 - 频道导航
    Copyright © 2017 www.zgxue.com All Rights Reserved