кодесурса
«Laravel

Laravel (5,7) Шифрование

script1adsense2code
script1adsense3code

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

Шифрование выполняется с использованием процесса под названием Криптография . Текст, который должен быть зашифрован, называется простым текстом, а текст или сообщение, полученное после шифрования, называется шифрованным текстом . Процесс преобразования зашифрованного текста в обычный текст называется расшифровкой .

Laravel использует шифрованные AES-256 и AES-128 , которые используют Open SSL для шифрования. Все значения, включенные в Laravel, подписаны с использованием протокольного кода аутентификации сообщений, поэтому базовое значение не может быть подделано после его шифрования.

конфигурация

Команда, использованная для генерации ключа в Laravel, показана ниже -

php artisan key:generate

Обратите внимание, что эта команда использует генератор безопасных случайных байтов PHP, и вы можете увидеть результат, как показано на скриншоте ниже -

«Laravel

Приведенная выше команда помогает в создании ключа, который можно использовать в веб-приложении. Посмотрите на скриншот, показанный ниже.

Заметка

Значения для шифрования должным образом выровнены в файле config / app.php , который включает в себя два параметра для шифрования, а именно ключ и шифр . Если значение, использующее этот ключ, не выровнено должным образом, все значения, зашифрованные в Laravel, будут небезопасными.

Процесс шифрования

Шифрование значения может быть выполнено с помощью помощника шифрования в контроллерах класса Laravel. Эти значения шифруются с использованием OpenSSL и шифра AES-256. Все зашифрованные значения подписаны кодом аутентификации сообщений (MAC) для проверки любых изменений зашифрованной строки.

«Laravel

Показанный ниже код упоминается в контроллере и используется для хранения секретного или конфиденциального сообщения.

<?php
namespace App\Http\Controllers;
use Illuminate\Http\Request;
use App\Http\Controllers\Controller;
class DemoController extends Controller{
   **
      * Store a secret message for the user.
      *
      * @param Request $request
      * @param int $id
      * @return Response
   */
   
   public function storeSecret(Request $request, $id) {
      $user = User::findOrFail($id);
      $user->fill([
         'secret' => encrypt($request->secret)
      ])->save();
   }
}

Процесс дешифрования

Расшифровка значений выполняется с помощью помощника расшифровки . Соблюдайте следующие строки кода -

use Illuminate\Contracts\Encryption\DecryptException;
// Exception for decryption thrown in facade
try {
   $decrypted = decrypt($encryptedValue);
} catch (DecryptException $e) {
   //
}

Обратите внимание, что если процесс расшифровки не был успешным из-за использования недопустимого MAC-адреса, выдается соответствующее исключение.

Предыдущая: Laravel (5.7) Авторизация
Далее: Laravel (5.7) Хеширование

Новый контент: Composer: менеджер зависимостей для PHP , R программирования


script1adsense4code
script1adsense5code
disqus2code
script1adsense6code
script1adsense7code
script1adsense8code
buysellads2code