@700Hp

Как дешифровать ответ с бэка на js (open ssl)?

Приходят данные.

Приходит ключ key с массивом значений.
- первое число длина ключа, который надо изъять.
- второе число длина IV (побитовое значение)
всё это откусывается от даты. всё что осталось является зашифрованной строкой.
Ключ data зашифрован base64. Я расшифровываю и дальшне не могу понять что делать.

Использую CRYPTO JS.

data: "RDJZPURWcE5PcmNPU3VYTzlKUEgRskZYvJ3NS9svInc="
key: [16, 12]


function decodeOpenSsl (data, keys) {
  try {
    const cfg = data.substring(data.length - keys[1])
    const dataWithoutCfg = data.slice(0, data.length - keys[1])
    const keyString = dataWithoutCfg.substring(dataWithoutCfg.length - keys[0])
    const cipherString = dataWithoutCfg.slice(0, dataWithoutCfg.length - keys[0])
    const derivedParams = CryptoJS.kdf.OpenSSL.execute(cipherString, keyString.length, cfg.length, keyString)
    const ciphertext = CryptoJS.enc.Hex.parse(cipherString)
    const decode = CryptoJS.AES.decrypt(cipherString, derivedParams.key, {
      iv: CryptoJS.enc.Hex.parse(cfg),
      mode: CryptoJS.mode.CBC
    })
  } catch (e) {
    console.log(e)
  }
}


В ответе получаю sizeBit и пустой массив words на постоянной основе.

Как я только и какие данные только не подставлял. Ничего не пойму. На что обратить внимание?
  • Вопрос задан
  • 80 просмотров
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы