Как портировать JS subtle.importKey / subtle.sign на PHP? Есть следующий код на JS:var utf8Encoder = new TextEncoder('utf-8'); var hmacKey = utf8Encoder.encode('Very_secret_key!'); var data = utf8Encoder.encode('Just simple test string'); window.crypto.subtle.importKey( 'raw', hmacKey, { name: 'HMAC', hash: { name: 'SHA-256' } }, false, [ 'sign', 'verify' ] ) .then(key => { window.crypto.subtle.sign('HMAC', key, data).then(signature => { console.log(new Uint8Array(signature)); }) }); Требуется воплотить тот же алгоритм генерации ключа и подписания сообщения на PHP. Насколько я понимаю, в качестве подписи можно использовать hash_hmac(...), но вот с генерацией ключа вообще непонятки. Может кто намекнет куда копать?

9 Дек 2022 в 19:54
185 +1
0
Ответы
1

Для портирования данного кода на PHP, вам потребуется использовать функцию hash_hmac для генерации ключа HMAC и вычисления подписи.

Вот пример PHP кода, который соответствует вашему JS коду:

<?php
$key = 'Very_secret_key!';
$data = 'Just simple test string';
// Генерация ключа HMAC
$hmacKey = utf8_encode($key);
// Вычисление подписи
$signature = hash_hmac('sha256', $data, $hmacKey, true);
// Вывод подписи в виде строки
echo bin2hex($signature);
?>

В этом примере мы используем функцию hash_hmac для вычисления HMAC подписи с алгоритмом SHA-256. Переменная $signature будет содержать подпись в бинарном формате, который может быть преобразован в строку с помощью функции bin2hex.

Таким образом, вы можете использовать данный PHP код для генерации ключа и вычисления подписи, аналогично тому, как это делается в вашем JS коде.

16 Апр в 17:00
Не можешь разобраться в этой теме?
Обратись за помощью к экспертам
Название заказа не должно быть пустым
Введите email
Бесплатные доработки
Гарантированные бесплатные доработки
Быстрое выполнение
Быстрое выполнение от 2 часов
Проверка работы
Проверка работы на плагиат
Интересные статьи из справочника
Поможем написать учебную работу
Название заказа не должно быть пустым
Введите email
Доверьте свою работу экспертам
Разместите заказ
Наша система отправит ваш заказ на оценку 92 436 авторам
Первые отклики появятся уже в течение 10 минут
Прямой эфир