美文网首页
Laravel 文档阅读:哈希

Laravel 文档阅读:哈希

作者: 晨曦入诗 | 来源:发表于2018-10-13 20:12 被阅读9次

    翻译、衍生自:http://laravel-china.org/docs/laravel/5.5/hashing

    简介


    Laravel 的 Hash 门面为存储用户密码提供了安全的 Bcrypt 哈希。如果你是使用内置的 LoginControllerReginsterController 类来构建认证系统的,那么你的用户密码在注册和认证过程中已经自动使用了 Bcrypt 。

    提示:Bcrypt 是哈希加密的理想选择,因为它的 「影响因子」 是可调整的,这就是说明生成哈希的时间可以随硬件功率的增加而增加的。

    基本用法


    你可以通过 Hash 门面的 make 方法来哈希一个明文密码。

    <? php
    
    namespace App\Http\Controllers;
    
    use Illuminate\Http\Request;
    use Illuminate\Support\Facades\Hash;
    use App\Http\Controllers\Controller;
    
    class UpdatePasswordController extends Controller
    {
        /**
         * Update the password for the user.
         *
         * @param  Request  $request
         * @return Response
         */
         public function update(Request $request)
         {
              // Validate the new password length
              $request->user()->fill([
                  'password' => Hash::make($request->newPassword)
              ])->save();
         }
    }
    

    make 方法允许你使用 rounds 选项来管理 bcrypt 哈希算法的影响因子;然而,使用 make 方法的默认值,已经足够了。

    $hashed = Hash::make('password', [
              'rounds' => 12
    ]);
    

    比对哈希值和文本字符

    check 方法用来验证给定的纯文本字符串是否能对应到给定的一个哈希值。如果你使用的是 Laravel 内置的 LoginController 了,你已经在使用它了。

    if(Hash::check('plain-text', $hashedPassword)){
       // The passwords match ....
     }
    

    检查密码是否需要重新加密

    if(Hash::needsRehash($hashed)){
         $hashed = Hash::make('plain-text');
    }
    

    相关文章

      网友评论

          本文标题:Laravel 文档阅读:哈希

          本文链接:https://www.haomeiwen.com/subject/ohfaaftx.html