decrypt
Функция decrypt применяется для расшифровки строк или данных, зашифрованных с использованием шифрования AES-256-CBC через функцию encrypt. Первым и единственным параметром передаётся зашифрованная строка, которую необходимо расшифровать. Функция возвращает исходное значение, которое может быть строкой, массивом или объектом. Если данные были повреждены или ключ шифрования не совпадает, будет выброшено исключение Illuminate\Contracts\Encryption\DecryptException.
Синтаксис
<?php
decrypt($encryptedValue);
?>
Пример
Давайте зашифруем строку, а затем расшифруем её обратно:
<?php
$encrypted = encrypt('secret string');
$decrypted = decrypt($encrypted);
echo $decrypted;
?>
Результат выполнения кода:
"secret string"
Пример
Функция может расшифровывать не только строки, но и массивы:
<?php
$encrypted = encrypt(['key' => 'value', 'user' => 'category']);
$decrypted = decrypt($encrypted);
echo $decrypted['user'];
?>
Результат выполнения кода:
"category"
Пример
При попытке расшифровать данные с неправильным ключом или повреждённые данные, функция выбрасывает исключение. Обработаем эту ситуацию:
<?php
use Illuminate\Contracts\Encryption\DecryptException;
try {
$encrypted = 'invalid_encrypted_string';
$decrypted = decrypt($encrypted);
echo $decrypted;
} catch (DecryptException $e) {
echo 'Decryption failed: ' . $e->getMessage();
}
?>
Результат выполнения кода:
"Decryption failed: The payload is invalid."
Пример
В контроллере можно использовать функцию для расшифровки данных, переданных через зашифрованные параметры:
<?php
namespace App\Http\Controllers;
use Illuminate\Http\Request;
class UserController extends Controller
{
public function show($encryptedToken)
{
$decryptedToken = decrypt($encryptedToken);
// Use decrypted token to find user
$user = User::where('token', $decryptedToken)->first();
return view('user.profile', ['user' => $user]);
}
}
?>
Смотрите также
-
функция
encrypt,
которая шифрует данные -
класс
Crypt,
который предоставляет методы шифрования и расшифровки -
метод
encryptString,
который шифрует строки без сериализации -
метод
decryptString,
который расшифровывает строки без десериализации