cookie的加密解密

18 篇文章 0 订阅

前端代码

<form action="{:url('login/loginuser')}" method="post" name="form1" id="form1" class="login_form">
    <ul>
        <li>
            <span>手机号:</span>
            <input type="text" name="tel" data-role="none" class="input-style" id="tel"
                placeholder="手机号码" value="{$Request.cookie.user_tel|encryption=1}">
        </li>
        <li>
            <span>密码:</span>
            <input type="password" name="password" data-role="none" class="input-style"
                id="password" placeholder="密码" value="{$Request.cookie.user_password|encryption=1}"> 
        </li>
        <li class="yzm">
            <span style="width: 25%;float: left;">验证码:</span>
            <input style="width: 43%;float: left;border-right: 1px solid #ddd;" type="text"
                name="code" data-role="none" class="input-style" id="yzm"
                placeholder="请输入验证码">
            <a href="#"><img src="{:captcha_src()}"
                    onclick="this.src='{:captcha_src()}?'+Math.random();" width="137"
                    height="52" style="float:left; cursor:pointer;" alt="captcha" /></a>
        </li>
    </ul>
    <div class="find">
        <label><input name="remember" id="remember" type="checkbox" value="1" {if condition = "$Request.cookie.user_remember eq 1"}checked="checked"{/if}/>记住密码</label>
        <a href="{:url('login/delcookie')}">清除信息</a>
        <a href="findPW.html">忘记密码?</a>
    </div>
    <input type="submit" name="Submit3" value="登录 " class="submit33" />
</form>

控制器方法

public function loginuser()
    {
        if(request()->isPost()){
            $data = input('post.');
            $res = model('User')->checkLogin($data);
            if($res == 1){
                $this->success('登录成功',url('login/loginuser'));
            }
            if($res == 2){
                $this->error("密码错误");
            }
            if($res == 3){
                $this->error("用户不存在");
            }
        }
        return view();
    }

 

模型方法

public function checkLogin($data)
    {
        $user=User::getByTel($data['tel']);
        if($user){
            if($user['password']==md5($user['code'].$data['password'])){
                $time = 60*60*24*7;//一周时间
                cookie('user_tel',encryption($user['tel'],0), $time);
                if(!empty($data['remember'])){
                    cookie('user_password',encryption($data['password'],0), $time);
                    cookie('user_remember' ,$data['remember'], $time);
                }
                return 1;//登陆成功
            }else{
                return 2;//密码错误
            } 
        }else{
            return 3;//用户不存在
        }
        return view();
    }
}

 

接下来就是封装加密解密方法

1.config.php添加

'encryption_key'         =>'d441d33a65d31dbf0a8016a85c71a5d8',

2.公共方法commoon.php添加

// type  0:加密  1:解密
function encryption($value,$type){
		$key = config('encryption_key');
		if($type == 0){
			return str_replace('=','',base64_encode($value.$key));
		}else{
			//value+key
			$value=base64_decode($value);
			//获取val;
			$data = strstr($value,$key,true);
			if(!$data){//返回false;
				$data = '';
			}
			return $data;
		}		
}

3结果

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值