Как перевести шифрование 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 почему то не то получается
Да, можно перевести этот код на 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.