搜索

首页  >  问答  >  正文

laravel - laravle5.0.22 如何修改验证加密方式(改成MD5验证)

auth 登录验证已经不是用MD5了,如何添加一个MD5的验证,不修改源码的情况。求详细点的介绍。

PHP中文网PHP中文网2750 天前605

全部回复(1)我来回复

  • 天蓬老师

    天蓬老师2017-05-16 16:57:43

    题主说的是加密密码么?

    如果是,可以在User.php加上这个

    
    public function setPasswordAttribute($password)
        {
            $this->attributes['password'] = md5($password);
        }

    ===============================================================

    修改部分:

    1. 在app/下创建一个MD5/文件夹。里面创建一个MD5Hasher类(MD5Hasher.php)

    class MD5Hasher implements Illuminate/Contracts/Hashing/Hasher {
    
        /**
         * Hash the given value.
         *
         * @param  string  $value
         * @return array   $options
         * @return string
         */
        public function make($value, array $options = []) {
            return md5($value);
        }
    
        /**
         * Check the given plain value against a hash.
         *
         * @param  string  $value
         * @param  string  $hashedValue
         * @param  array   $options
         * @return bool
         */
        public function check($value, $hashedValue, array $options = []) {
            return $this->make($value) === $hashedValue;
        }
    
        /**
         * Check if the given hash has been hashed using the given options.
         *
         * @param  string  $hashedValue
         * @param  array   $options
         * @return bool
         */
        public function needsRehash($hashedValue, array $options = []) {
            return false;
        }
    
    }
    

    make your provider

    命令行:

    php artisan make:provider MD5HashServiceProvider

    在这个文件的register()方法写上:

    public function register()
        {
            $this->app['hash'] = $this->app->share(function () {
                return new MD5Hasher();
            });
        }
    

    修改配置

    config/app.php,注释下面这一行:

     Illuminate\Hashing\HashServiceProvider::class,

    加上你的:

    MD5HashServiceProvider::class

    Happy Hacking

    回复
    0
  • 取消回复