Как раскодировать aes128gcm? Здравствуйте!
Как можно раскодировать запрос с web-push уведомления, если известен authToken и publicKey. $ciphertext = .....; // тело запроса
$publicKey = 'BCR.....'; // он же p256dh Key
$authToken ='J4E5H.......';
echo openssl_decrypt($ciphertext, "aes-128-gcm",$publicKey, 0, $authToken);https://jrconlin.github.io/WebPushDataTestPage/
Вот здесь более подробно описан процесс кодирования, но к сожалению ничего не работает)
Данный код к сожалению ничего не выдает.... может кто-то сталкивался?

21 Авг 2019 в 07:11
181 +1
0
Ответы
1

Для раскодирования AES128GCM с помощью OpenSSL в PHP вам нужно правильно сформировать параметры функции openssl_decrypt.

В вашем случае, если $ciphertext содержит зашифрованное сообщение, $publicKey содержит public key (p256dh Key) и $authToken содержит auth token, то код для раскодирования должен выглядеть примерно так:

$ciphertext = .....; // тело запроса
$publicKey = 'BCR.....'; // он же p256dh Key
$authToken ='J4E5H.......';
// Декодируем base64 строку $publicKey
$publicKey = base64_decode($publicKey);
// Устанавливаем параметры.
$tag_length = 16;
$iv = substr($ciphertext, 0, 12);
$tag = substr($ciphertext, -16);
$encrypted_data = substr($ciphertext, 12, strlen($ciphertext) - 12 - 16);
// Расшифровываем сообщение.
$plaintext = openssl_decrypt($encrypted_data, 'aes-128-gcm', $publicKey, OPENSSL_RAW_DATA, $iv, $tag, $authToken);
echo $plaintext;

Пожалуйста, убедитесь, что $ciphertext действительно содержит зашифрованное сообщение, и что $publicKey и $authToken переданы в правильном формате. Если все параметры верны, то данный код должен раскодировать сообщение с использованием указанных ключей.

20 Апр 2024 в 13:06
Не можешь разобраться в этой теме?
Обратись за помощью к экспертам
Гарантированные бесплатные доработки в течение 1 года
Быстрое выполнение от 2 часов
Проверка работы на плагиат
Поможем написать учебную работу
Прямой эфир