冯叙澎 2018-01-23 14:22:42 9461次浏览 2条评论 0 1 0
//最开始找了半天,validatePasswrod这个方法是从哪里进去的,原来是rules
public function rules()
{
    return [
        // password is validated by validatePassword()
        ['password', 'validatePassword'],
    ];
}

//------
public function validatePassword($attribute, $params)
{
    if (!$this->hasErrors()) {
        $user = $this->getUser();
        //validatePassword 这个方法编辑器都找错了.框架有些绕
        //正常找的是UserAll里面的validatePassword方法
        if (!$user || !$user->validatePassword($this->password)) {
            $this->addError($attribute, '用户名密码错误.');
        }
    }
}
觉得很赞
  • 评论于 2018-01-23 16:16 举报
    <?php
    //实现原理.以后可以不用MD5了.知识是不是可以升级了
    
    //register
    //生成哈希,页面每次刷新生成的值都不一样,但是都可以验证
    $pwd =  password_hash(123456, 1);
    
    //login
    $hash = '$2y$13$aM7ksVIJT/oWyU.LaYFtM.D6Yk8F9d1exgRQfdDCSvGPQ71i0sRee';//都是123456加密后的哈希
    $hash2 = '$2y$10$lbi92QQDDcpwnWBKwXFcPOt7HCHW.PhNaSZhocYglhds6tXzwS4Am';//都是123456加密后的哈希
    $r1 = password_verify(123456, $hash);//都可以返回true
    $r2 = password_verify(123456, $hash2);//都可以返回true
    
  • 评论于 2018-01-24 18:37 举报

    加密方法都是 php 函数 password_hash()

    1 条回复
    评论于 2018-01-28 10:17 回复

    嗯,是的.加密用 password_hash(),验证用 password_verify()

您需要登录后才可以评论。登录 | 立即注册