laravel 基礎(chǔ)教程 —— 哈希

哈希

簡介

Laravel 的 Hash 假面對存儲用戶的密碼提供了安全的 Bcrypt 加密工具哈?;?。如果你使用了 laravel 自帶的 AuthController 控制器,那么你就已經(jīng)使用過了它。它會在注冊和認(rèn)證時自動的使用 Bcrypt 加密工具。

Bcrypt 對于密碼哈?;且环N很好的選擇,因為它的‘工作因子’是可以調(diào)整的,這就意味著隨著硬件功率的提升,生成哈希密碼的時間也會提升。

基礎(chǔ)用法

你可以使用 Hash 假面的 make 方法來進行密碼的哈希化:

<?php

namespace App\Http\Controllers;

use Hash;
use App\User;
use Illuminate\Http\Request;
use App\Http\Controllers\Controller;

class UserController extends Controller
{
  /**
   * Update the password for the user.
   *
   * @param Request $request
   * @param int $id
   * @return Response
   */
  public function updatePassword(Request $request, $id)
  {
    $user = User::findOrFail($id);

    // validate the new password length...

    $user->fill([
        'password' => Hash::make($request->newPassword)
      ])->save();
  }
}

另外,你可以使用全局幫助方法 bcrypt 來做同樣的事情:

bcrypt('plain-text');

針對 Hash 密碼的驗證

check 方法允許你驗證所給定的哈希化的密碼是否與所給定的原始字符串相匹配。如果你使用了 laravel 所提供的 AuthController 控制器,那么你并不需要直接的去使用這個方法,因為在認(rèn)證控制器中系統(tǒng)會自動的調(diào)用這個方法:

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

檢查密碼是否需要刷新

needsRehash 方法可以用來判斷密碼是否需要重新生成,當(dāng)工作因子變更時而密碼沒有使用新的工作因子生成時,其將返回 true:

if (Hash::needsRehash($hashed)) {
  $hashed = Hash::make('plain-text');
}
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容