Поддержите проект сделав пожертвование.
Будьте в курсе последних новостей!
Будьте в курсе последних новостей!

Хеширование

Вы просматриваете документ для прошлой версии.
Рассмотрите возможность обновления вашего проекта до актуальной версии 10.x. Почему это важно?

Введение

Фасад Hash в Laravel обеспечивает надёжное Bcrypt-хеширование для хранения паролей пользователей. Если вы используете встроенные классы LoginController и RegisterController, включённые в ваше Laravel-приложение, они будут автоматически использовать Bcrypt для регистрации и авторизации.

отличный выбор для хеширования паролей, потому что сложность его вычисления настраивается. Это значит, что можно увеличить время генерации хеша, если вы располагаете мощным железом.

Основы использования

Вы можете хешировать пароль, вызвав метод make фасада Hash:

<?php

namespace App\Http\Controllers;

use Illuminate\Http\Request;
use Illuminate\Support\Facades\Hash;
use App\Http\Controllers\Controller;

class UpdatePasswordController extends Controller
{
    /**
     * Обновление пароля пользователя.
     *
     * @param  Request  $request
     * @return Response
     */
    public function update(Request $request)
    {
        // Проверка длины нового пароля...

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

Сверка пароля с хешем

Метод check позволяет сверить текстовую строку и имеющийся хеш. Но если вы используете встроенный в LaravelLoginController, то вам не нужно использовать этот метод, так как этот контроллер автоматически вызывает этот метод:

if (Hash::check('plain-text', $hashedPassword)) {
    // Пароли совпадают...
}

Проверка необходимости повторного хеширования пароля

Функция needsRehash позволяет определить, изменилась ли используемая сложность хеширования с момента создания хеша для пароля:

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