проблема шифрования информации в angular с расшифровкой в узле

#node.js #angular #encryption

#node.js #angular #шифрование

Вопрос:

У меня есть веб-приложение, написанное на Angular и Node. Я использую пакет crypto-ts в Angular для отправки зашифрованной информации на сервер. У сервера есть код для расшифровки, но я не могу изменить код на сервере. Шифрование выполняется с помощью AES-256-CBC. Мой код не работает, и я не могу определить проблему.

У меня такая ошибка: 06065064: процедуры цифрового конверта: EVP_DecryptFinal_ex: плохое дешифрование

Серверный код :

    const Crypto = require('crypto');
    const clientOptions = {
      cypher: 'AES-256-CBC',
      key: 'Must256bytes(32characters)secret',
    };

   function decrypt(encodedString) {
    const strb = base64decode(encodedString);
    let encoded = JSON.parse(strb);
    encoded.iv = base64decode(encoded.iv);
    encoded.value =base64decode(encoded.value, 'binary');

    const decipher = Crypto.createDecipheriv(
      clientOptions.cypher,
      clientOptions.key,
      encoded.iv
    );

    let decrypted = decipher.update(encoded.value, 'binary', 'ascii');
    decrypted  = decipher.final('ascii');

    return JSON.parse(decrypted);
  }
 function base64decode(string, mode) {
    return Buffer.from(string, 'base64').toString(mode || 'ascii');
  }
  

Угловой код:

 import { AES, enc, mode, algo, lib } from 'crypto-ts';

    const key='Must256bytes(32characters)secret',
    const iv = lib.WordArray.random(8);
    const crypted = AES.encrypt('test', key, { mode: mode.CBC, iv: iv });
    const data = {
      iv: btoa(iv.toString()),
      value: btoa(crypted.ciphertext.toString()),
    };
    const out = btoa(JSON.stringify(data));