Может войдёшь?
Черновики Написать статью Профиль

Шифрование

перевод документация 5.х

  1. 1. Настройка
  2. 2. Основы использования
Этот перевод актуален для англоязычной документации на (ветка 5.1) и (ветка 5.0). Опечатка? Выдели и нажми Ctrl+Enter.

Настройка

Перед использованием шифрования Laravel обязательно задайте случайный 32-значный ключ key в файле config/app.php. Иначе все зашифрованные значения не будут безопасными.

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

Шифрование значения

Вы можете зашифровать значение с помощью фасада Crypt. Все значения шифруются с помощью OpenSSL и шифра AES-256-CBC. Более того, все шифрованные значения подписаны кодом аутентификации сообщения (MAC — message authentication code) для обнаружения любых изменений в зашифрованной строке.

Например, мы можем использовать метод PHPencrypt() для шифрования секретных данных и сохранения их в Eloquent модели:

PHP
<?php

namespace App\Http\Controllers;

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

class 
UserController extends Controller
{
  
/**
   * Сохранение секретного сообщения для пользователя.
   *
   * @param  Request  $request
   * @param  int  $id
   * @return Response
   */
  
public function storeSecret(Request $request$id)
  {
    
$user User::findOrFail($id);

    
$user->fill([
      
'secret' => Crypt::encrypt($request->secret)
    ])->
save();
  }
}

Расшифровка значения

Само собой, вы можете расшифровать значение при помощи метода PHPdecrypt() фасада Crypt. Если значение не может быть корректно расшифровано, например, при неверном MAC, будет выброшено исключение Illuminate\Contracts\Encryption\DecryptException:

PHP
use Illuminate\Contracts\Encryption\DecryptException;

try {
  
$decrypted Crypt::decrypt($encryptedValue);
} catch (
DecryptException $e) {
  
//
}
+ 5.0

добавлено в 5.0 ()

Laravel предоставляет средства для надёжного шифрования по алгоритму AES с помощью расширения mcrypt для PHP.

Шифрование строки

PHP
$encrypted Crypt::encrypt('секрет');

Расшифровка строки

PHP
$decrypted Crypt::decrypt($encryptedValue);

Изменение алгоритма и режима шифрования

PHP
Crypt::setMode('ctr');

Crypt::setCipher($cipher);

Написать комментарий

Разметка: ? ?

Авторизуйся, чтобы прокомментировать.