Как перевести шифрование openssl encrypt с PHP на JS? Есть код на PHP:$data = '{"message": 123}'; $secret_key = 'test'; $secret_iv = 'test; $method = "AES-192-CBC"; $iv = substr(hash('sha256', $secret_iv), 0, 16); $encrypted = openssl_encrypt($data, $method, $secret_key,0,$iv); Можно ли перевести его по аналогии на JS? Пробовал с crypto-js почему то не то получается

19 Окт 2023 в 19:54
161 +1
0
Ответы
1

Да, можно перевести этот код на JS с использованием библиотеки crypto-js. Вот пример кода на JS, который эквивалентен вашему коду на PHP:

const CryptoJS = require("crypto-js");
const data = '{"message": 123}';
const secret_key = 'test';
const secret_iv = 'test';
const method = "AES-192-CBC";
const key = CryptoJS.enc.Utf8.parse(secret_key);
const iv = CryptoJS.enc.Hex.parse(CryptoJS.SHA256(secret_iv).toString().substr(0, 16));
const encrypted = CryptoJS.AES.encrypt(data, key, { iv: iv, mode: CryptoJS.mode.CBC, padding: CryptoJS.pad.Pkcs7 });
console.log(encrypted.toString());

Убедитесь, что у вас установлена библиотека crypto-js, например, с помощью npm:

npm install crypto-js

Этот код должен дать вам зашифрованную строку, эквивалентную результату функции openssl_encrypt на PHP.

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