密码加密

密码加密是必不可少的一环,在实际的使用中,我们往往通过SHA1和MD5相结合的方法来进行密码的加密。需要注意的是,上述算法的加密过程都是不可逆的,即:只能加密,不能解密。

 

1、改写密码检验过程

    /**
     * 验证密码是否正确
     * @param  string $password 密码
     * @return bool           
     */
    public function checkPassword($password)
    {
        if ($this->getData('password') === $this::encryptPassword($password))
        {
            return true;
        } else {
            return false;
        }
    }

2、设计加密算法

    /**
     * 密码加密算法
     * @param    string                   $password 加密前密码
     * @return   string                             加密后密码
     * @author 孤独的飞行者*/
    static public function encryptPassword($password)
    {   
        // 实际的过程中,我还还可以借助其它字符串算法,来实现不同的加密。
        return sha1(md5($password) . 'wzz');
    }

3、利用测试代码,生成默认密码
有了加密算法后,我们发现直接在数据库中添加密码 123 ,已经满足不了我们的需求了,我们需要知道123被加密以后的样子。

namespace app\index\controller;
...
class LoginController extends Controller
{
    public function test()
    {
        echo Teacher::encryptPassword('123');
    }

得到123加密后的密码为

5f383784a8ce262fa222357d503768412ee75518

现在我们在数据库中将密码重置为

5f383784a8ce262fa222357d503768412ee75518

 

posted @ 2017-09-12 16:46  孤独的飞行者  阅读(207)  评论(0编辑  收藏  举报