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

Класс Crypt

Класс Crypt используется для шифрования и дешифрования данных в Laravel. Он использует механизм шифрования AES-256-CBC, который обеспечивает высокий уровень безопасности. Класс автоматически генерирует уникальный идентификатор (IV) для каждой операции шифрования и подписывает данные HMAC-кодом для предотвращения их подделки. Для работы класса в файле .env должен быть установлен ключ APP_KEY.

Основные методы класса: encrypt для шифрования данных, decrypt для дешифрования, encryptString для шифрования строк и decryptString для дешифрования строк. Методы encryptString и decryptString работают аналогично основным методам, но гарантируют, что на вход и выход передаются именно строковые значения.

Синтаксис

<?php use Illuminate\Support\Facades\Crypt; // Шифрование данных $encrypted = Crypt::encrypt($data); // Дешифрование данных $decrypted = Crypt::decrypt($encrypted); // Шифрование строки $encryptedString = Crypt::encryptString($string); // Дешифрование строки $decryptedString = Crypt::decryptString($encryptedString); ?>

Пример использования метода encrypt

Давайте зашифруем строку 'secret data' с помощью метода encrypt:

<?php use Illuminate\Support\Facades\Crypt; $res = Crypt::encrypt('secret data'); echo $res; ?>

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

"eyJpdiI6ImV4YW1wbGVJZCIsInZhbHVlIjoiZXhhbXBsZVZhbHVlIiwibWFjIjoiZXhhbXBsZU1hYyJ9"

Метод возвращает зашифрованную строку в формате Base64, которая содержит зашифрованные данные, вектор инициализации и HMAC-подпись.

Пример использования метода decrypt

Давайте расшифруем данные, полученные от метода encrypt:

<?php use Illuminate\Support\Facades\Crypt; $encrypted = Crypt::encrypt('secret data'); $res = Crypt::decrypt($encrypted); echo $res; ?>

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

"secret data"

Метод decrypt принимает зашифрованную строку и возвращает исходные данные. Если зашифрованные данные были изменены или ключ не соответствует, метод выбросит исключение Illuminate\Contracts\Encryption\DecryptException.

Пример использования методов encryptString и decryptString

Методы encryptString и decryptString работают аналогично основным методам, но гарантируют, что переданные данные являются строками:

<?php use Illuminate\Support\Facades\Crypt; $encrypted = Crypt::encryptString('user@example.com'); $res = Crypt::decryptString($encrypted); echo $res; ?>

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

"user@example.com"

Эти методы удобно использовать для шифрования конфиденциальных строковых данных, таких как email-адреса, пароли или токены.

Пример шифрования данных в контроллере

Давайте создадим контроллер, который шифрует и дешифрует данные пользователя:

<?php namespace App\Http\Controllers; use Illuminate\Support\Facades\Crypt; class UserController extends Controller { public function encryptData() { $userData = [ 'name' => 'John Doe', 'email' => 'john@example.com', 'id' => 12345 ]; $encrypted = Crypt::encrypt($userData); return response()->json(['encrypted' => $encrypted]); } public function decryptData($encrypted) { $decrypted = Crypt::decrypt($encrypted); return response()->json(['decrypted' => $decrypted]); } } ?>

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

  • функция encrypt,
    которая является вспомогательной функцией для метода encrypt
  • функция decrypt,
    которая является вспомогательной функцией для метода decrypt
  • функция encryptString,
    которая шифрует строковые данные
  • функция decryptString,
    которая дешифрует строковые данные
Мы используем cookie для работы сайта, аналитики и персонализации. Обработка данных происходит согласно Политике конфиденциальности.
принять все настроить отклонить