Метод decrypt
Метод decrypt класса Crypt применяется для расшифровки строк или значений, зашифрованных с использованием механизма шифрования Laravel. В качестве единственного параметра метод принимает зашифрованную строку, а возвращает расшифрованное значение в исходном типе (строка, массив, объект). Для работы метода необходимо корректно настроить ключ шифрования в файле .env.
Синтаксис
<?php
Crypt::decrypt($encryptedValue);
?>
Пример
Давайте расшифруем строку, которая была зашифрована ранее:
<?php
use Illuminate\Support\Facades\Crypt;
$encrypted = "eyJpdiI6Ik5qVTJNREF5TkRVMk9UWT0iLCJ2YWx1ZSI6IjE5N1wv...";
$decrypted = Crypt::decrypt($encrypted);
echo $decrypted;
?>
Результат выполнения кода:
"Hello, Laravel!"
Пример
Метод decrypt также корректно обрабатывает массивы и объекты. Расшифруем данные пользователя:
<?php
namespace AppHttpControllers;
use Illuminate\Support\Facades\Crypt;
class UserController extends Controller
{
public function show()
{
$encryptedData = "eyJpdiI6IjNwaU1GOVwvdEExVU5...";
$userData = Crypt::decrypt($encryptedData);
echo $userData['name'] . ' - ' . $userData['email'];
}
}
?>
Результат выполнения кода:
"John Doe - john@example.com"
Пример
Если при расшифровке возникает ошибка (например, неверный ключ или повреждённые данные), метод выбрасывает исключение Illuminate\Contracts\Encryption\DecryptException. Обработаем такую ситуацию:
<?php
namespace AppConsoleCommands;
use IlluminateConsoleCommand;
use IlluminateSupportFacadesCrypt;
use IlluminateContractsEncryptionDecryptException;
class DecryptCommand extends Command
{
protected $signature = 'decrypt:data {value}';
public function handle()
{
try {
$value = Crypt::decrypt($this->argument('value'));
echo $value;
} catch (DecryptException $e) {
echo "Decryption failed: " . $e->getMessage();
}
}
}
?>
Результат выполнения команды при ошибке:
"Decryption failed: The payload is invalid."
Смотрите также
-
метод
encrypt,
который выполняет шифрование данных -
метод
encryptString,
который шифрует строки без сериализации -
метод
decryptString,
который расшифровывает строки без десериализации -
функция
decrypt,
которая является вспомогательной обёрткой для метода класса Crypt