Для выполнения задачи расшифровки строки в JavaScript с использованием AES-256-CBC, вам нужно будет использовать библиотеку, так как встроенная поддержка криптографии в JavaScript несколько ограничена. Одной из популярных библиотек для этого является `crypto-js`, которая предоставляет удобный интерфейс для работы с шифрованием и расшифровкой.
Вот аналог кода на JavaScript:
1. Сначала вам нужно установить библиотеку `crypto-js`. Если вы используете Node.js, вы можете установить её через npm:
```
npm install crypto-js
```
2. Затем используйте следующий код для расшифровки строки:
```javascript
const CryptoJS = require('crypto-js');
const encryptedData = 'jPNGTNLtGIBc7Jv2UXj7a3FNQk13eUJ5T3VIUXlOS0ZVOEpnMUpPMnhvQXg5bE5kMGFHejVxaTFnYTA9';
const key = 'qEExPE+jkJxQUt8fSO+XwzXgRGh6kLHy+lWEe6Z8T6s=';
const ivLength = 16; // Размер вектора инициализации для AES
// Декодируем зашифрованные данные из base64
const decodedData = CryptoJS.enc.Base64.parse(encryptedData);
// Извлекаем IV и зашифрованный текст
const iv = decodedData.words.slice(0, ivLength / 4); // Первые 16 байт (4 * 4 = 16)
const encryptedText = decodedData.words.slice(ivLength / 4); // Остальная часть
// Декодируем ключ
const decodedKey = CryptoJS.enc.Base64.parse(key);
// Расшифровка
const decrypted = CryptoJS.AES.decrypt(
{ ciphertext: CryptoJS.lib.WordArray.create(encryptedText) },
decodedKey,
{ iv: CryptoJS.lib.WordArray.create(iv) }
);
// Выводим расшифрованную строку
console.log("Расшифрованная строка:", decrypted.toString(CryptoJS.enc.Utf8));
```
Обратите внимание на то, что в JavaScript используется `WordArray` для работы с данными байтов, поэтому мы используем `slice`, чтобы выделить нужные части из расшифрованных данных.
Этот пример должен работать так же, как ваш PHP-код – он декодирует зашифрованные данные из формата Base64, извлекает вектор инициализации и затем расшифровывает текст с использованием указанного ключа.