Метод decryptString
Метод decryptString класса Crypt предназначен для расшифровки строк, которые были зашифрованы с помощью метода encryptString. В отличие от метода decrypt, который может расшифровывать различные типы данных, decryptString гарантирует, что возвращаемое значение будет строкой. Метод принимает зашифрованную строку в качестве единственного параметра и возвращает расшифрованное значение в виде строки.
Синтаксис
<?php
use Illuminate\Support\Facades\Crypt;
Crypt::decryptString($encryptedValue);
?>
Пример
Давайте зашифруем строку с помощью encryptString, а затем расшифруем её с помощью decryptString:
<?php
use Illuminate\Support\Facades\Crypt;
$encrypted = Crypt::encryptString('secret data');
$decrypted = Crypt::decryptString($encrypted);
echo $decrypted;
?>
Результат выполнения кода:
"secret data"
Пример
Метод decryptString также может быть использован для расшифровки значений, хранящихся в базе данных. Например, давайте расшифруем секретное сообщение пользователя:
<?php
namespace App\Http\Controllers;
use Illuminate\Support\Facades\Crypt;
use App\Models\User;
class UserController extends Controller
{
public function showSecret($id)
{
$user = User::find($id);
$decrypted = Crypt::decryptString($user->secret_message);
echo $decrypted;
}
}
?>
Пример
Если попытаться расшифровать данные, которые не были зашифрованы методом encryptString, метод decryptString выбросит исключение Illuminate\Contracts\Encryption\DecryptException. Вот как можно обработать такую ситуацию:
<?php
use Illuminate\Support\Facades\Crypt;
use Illuminate\Contracts\Encryption\DecryptException;
try {
$decrypted = Crypt::decryptString('invalid_encrypted_data');
echo $decrypted;
} catch (DecryptException $e) {
echo 'Decryption failed: ' . $e->getMessage();
}
?>
Результат выполнения кода:
"Decryption failed: The payload is invalid."
Пример
Метод decryptString часто используется вместе с методом encryptString для безопасного хранения конфиденциальных данных, таких как API-ключи или пароли. Вот пример работы с массивом данных:
<?php
use Illuminate\Support\Facades\Crypt;
$data = ['api_key' => 'abc123', 'secret' => 'xyz789'];
$jsonData = json_encode($data);
$encrypted = Crypt::encryptString($jsonData);
$decryptedJson = Crypt::decryptString($encrypted);
$decryptedData = json_decode($decryptedJson, true);
echo $decryptedData['api_key'];
?>
Результат выполнения кода:
"abc123"
Смотрите также
-
метод
encryptString,
который шифрует строку -
метод
encrypt,
который шифрует любые данные -
метод
decrypt,
который расшифровывает любые данные -
функция
decrypt,
которая является глобальной вспомогательной функцией для расшифровки