РЕПЕТИТОР математика физика информатика
Для школьников и студентов. Подтягивание пробелов. ЦЭ, ЦТ, ОГЭ, ЕГЭ.
Идет набор на ЛЕТО. Жмите для подробностей:)
764 of 1392 menu

Функция bcrypt

Функция bcrypt предоставляет удобный способ хеширования паролей с использованием алгоритма Bcrypt. Она является обёрткой над фасадом Hash и методом make. Функция принимает один обязательный параметр - строку, которую необходимо захешировать, и возвращает хешированную строку. Bcrypt автоматически генерирует случайную "соль" (соль) для каждого хеша, что делает его устойчивым к атакам по радужным таблицам. Алгоритм также включает фактор стоимости (cost factor), который по умолчанию равен 10, но может быть изменён через параметр rounds в конфигурационном файле config/hashing.php.

Синтаксис

<?php bcrypt($value); ?>

Пример

Давайте захешируем пароль пользователя при регистрации:

<?php namespace App\Http\Controllers\Auth; use App\Models\User; use App\Http\Controllers\Controller; use Illuminate\Http\Request; class RegisterController extends Controller { public function register(Request $request) { $validated = $request->validate([ 'name' => 'required|string|max:255', 'email' => 'required|string|email|max:255|unique:users', 'password' => 'required|string|min:8|confirmed', ]); $user = User::create([ 'name' => $validated['name'], 'email' => $validated['email'], 'password' => bcrypt($validated['password']), ]); echo "User created successfully"; } } ?>

Результат выполнения кода:

"User created successfully"

Пример

Проверим хешированный пароль с помощью фасада Hash. Обратите внимание, что для проверки пароля используется метод check, который принимает обычный пароль и его хеш:

<?php namespace App\Http\Controllers\Auth; use App\Http\Controllers\Controller; use Illuminate\Http\Request; use Illuminate\Support\Facades\Hash; class LoginController extends Controller { public function login(Request $request) { $user = User::where('email', $request->email)->first(); if ($user && Hash::check($request->password, $user->password)) { echo "Login successful"; } else { echo "Invalid credentials"; } } } ?>

Результат выполнения кода:

"Login successful"

Пример

Давайте создадим хеш пароля напрямую с помощью функции bcrypt и выведем его на экран:

<?php $password = 'secure_password_123'; $hash = bcrypt($password); echo $hash; ?>

Результат выполнения кода:

"$2y$10$92IXUNpkjO0rOQ5byMi.Ye4oKoEa3Ro9llC/.og/at2.uheWG/igi"

Смотрите также

  • фасад Hash,
    который предоставляет методы для безопасного хеширования
  • метод make,
    который создаёт хеш пароля
  • метод check,
    который проверяет пароль на соответствие хешу
  • метод needsRehash,
    который проверяет необходимость перехеширования
Мы используем cookie для работы сайта, аналитики и персонализации. Обработка данных происходит согласно Политике конфиденциальности.
принять все настроить отклонить