Приходят данные.
Приходит ключ 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 на постоянной основе.
Как я только и какие данные только не подставлял. Ничего не пойму. На что обратить внимание?