您现在的位置: 首页 > 开发编程 > Laravel教程 > 正文

laravel5.4 登录注册MD5加密方式教程

作者:admin来源:网络浏览:时间:2017-07-21 16:30:29我要评论
分享到
上次写过一篇文章《laravle5.4修改成MD5验证加密方式》,这样做有一个缺点,是把整个框架的加密方式都修改了,今天分享的是针对注册登录的MD5加密方式,不影响其他hash加密。
 
具体步骤如下
 
1.在app目录下,新建一个文件Libraries,在Libraries目录下新建一个MD5.php文件,里面代码如下:

  1. <?php 
  2.  
  3. namespace App\Libraries; 
  4.  
  5. use Illuminate\Contracts\Hashing\Hasher; 
  6.  
  7. class MD5 implements Hasher 
  8.     /** 
  9.      * Hash the given value. 
  10.      * 
  11.      * @param string $value 
  12.      * 
  13.      * @return array  $options 
  14.      * @return string 
  15.      */ 
  16.     public function make($valuearray $options = []) 
  17.     { 
  18.         return md5($value); 
  19.     } 
  20.  
  21.     /** 
  22.      * Check the given plain value against a hash. 
  23.      * 
  24.      * @param string $value 
  25.      * @param string $hashedValue 
  26.      * @param array $options 
  27.      * 
  28.      * @return bool 
  29.      */ 
  30.     public function check($value$hashedValuearray $options = []) 
  31.     { 
  32.         if(empty($hashedValue)){ 
  33.             return true; 
  34.         } 
  35.         return $this->make($value) === $hashedValue
  36.     } 
  37.  
  38.     /** 
  39.      * Check if the given hash has been hashed using the given options. 
  40.      * 
  41.      * @param string $hashedValue 
  42.      * @param array $options 
  43.      * 
  44.      * @return bool 
  45.      */ 
  46.     public function needsRehash($hashedValuearray $options = []) 
  47.     { 
  48.         return false; 
  49.     } 

2.在Providers文件下面新建一个文件 MD5ServiceProvider.php,里面代码如下:

  1. <?php 
  2.  
  3. namespace App\Providers; 
  4.  
  5. use Illuminate\Auth\EloquentUserProvider; 
  6. class MD5ServiceProvider extends EloquentUserProvider 
  7.  
  8.     //继承EloquentUserProvider类,调用父类的构造函数 
  9.     public function __construct($hasher$model
  10.     { 
  11.         parent::__construct($hasher$model); 
  12.     } 
  13.  
  14.     /** 
  15.      * Bootstrap the application services. 
  16.      * 
  17.      * @return void 
  18.      */ 
  19.     public function boot() 
  20.     { 
  21.         // 
  22.     } 
  23.  
  24.     /** 
  25.      * Register the application services. 
  26.      * 
  27.      * @return void 
  28.      */ 
  29.     public function register() 
  30.     { 
  31.         // 
  32.     } 

3.在AuthServiceProvider.php文件里boot方法里添加如下代码

  1. Auth::provider('MD5'function ($app) { 
  2.             $model = config('auth.providers.users.model'); 
  3.             return new MD5ServiceProvider(new MD5, $model); 
  4.         }); 
  1. 头部需要引用命名 
  2. use  App\Libraries\MD5; 
  3. use Auth 

4.修改config/auth.php里的providers,修改代码如下

  1. 'providers' => [ 
  2.         //会员MD5登录加密 
  3.         'users' => [ 
  4.             'driver' => 'MD5'
  5.             'model' => App\User::class
  6.         ], 
  7. //        'users' => [ 
  8. //            'driver' => 'eloquent', 
  9. //            'model' => App\User::class, 
  10. //        ], 
  11.  
  12.         // 'users' => [ 
  13.         //     'driver' => 'database', 
  14.         //     'table' => 'users', 
  15.         // ], 
  16.     ], 

到此就修改完成了,这样注册登录都可以使用md5去加密验证,如有不懂可以联系站长Q Q:634381967


相关热词搜索: