Как распаковать двоичные данные в узле JS - PullRequest
1 голос
/ 06 октября 2019

После того, как я расшифровал данные из базы 64 в двоичный файл, я хочу распаковать эти данные.

На языке PHP у нас есть встроенная функция gzdecode (), но я использую узел js в своем проекте, иЯ не знаю, как я могу распаковать двоичные данные с помощью gzip. Я получаю данные шифрования в теле запроса, затем расшифровываю их, а затем хочу распаковать мои расшифрованные данные. После этого я сохраняю расшифрованные данные в моей базе данных mongodb

Мой код для расшифровки данных из базы 64 в двоичную форму

function decrypt(text, salt, iv) {
const password = "password";
crypto.pbkdf2(password, salt, 65536, 256, "sha256", (err, key) => {
  try {
    const key32 = key.slice(0, 32);
    const decipher = crypto.createDecipheriv("aes-256-cbc", key32, iv);
    let decrypted = decipher.update(text, "base64", "binary");
    decrypted += decipher.final("binary");
    // and then I want decompress my `decrypted` variable
    // like gzdecode(decrypted) in php
  } catch (error) {
    throw new Error(error)
  }
});
}
  decrypt(plainText, salt, iv)

1 Ответ

0 голосов
/ 11 октября 2019

Node.js имеет встроенную поддержку ZLib. Как только вы закончите расшифровку, вы можете использовать zlib.unzip (https://nodejs.org/api/zlib.html#zlib_zlib_unzip_buffer_options_callback) или zlib.unzipSync (https://nodejs.org/api/zlib.html#zlib_zlib_unzipsync_buffer_options) для разархивирования) или inflate / inflateSync (https://nodejs.org/api/zlib.html#zlib_zlib_inflate_buffer_options_callback) для Inflate

Надеюсь, это поможет!

...