如何在node js中解压二进制数据

Posted

技术标签:

【中文标题】如何在node js中解压二进制数据【英文标题】:How to decompress binary data in node js 【发布时间】:2020-02-03 23:58:42 【问题描述】:

在我将数据从 base 64 解密为二进制后,我想解压缩这些数据。

php语言中,我们有gzdecode()内置函数,但是我在我的项目中使用node js,我不知道如何使用gzip解压二进制数据。我在请求正文中获取加密数据,然后我将其解密,然后我想解压缩我的解密数据。在此步骤之后,我将解密的数据存储在我的 mongodb 数据库中

我将数据从 base 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)

【问题讨论】:

How do I ungzip (decompress) a NodeJS request's module gzip response body?的可能重复 我不这么认为 【参考方案1】:

Node.js 具有内置的 ZLib 支持。完成解密后,您可以使用:

zlib.unzipzlib.unzipSync 用于解压 inflate or inflateSync 用于充气

希望有帮助!

【讨论】:

以上是关于如何在node js中解压二进制数据的主要内容,如果未能解决你的问题,请参考以下文章

如何将二进制数据从 Node.js socket.io 服务器发送到浏览器客户端?

[Node.js]Buffer

Node.js Buffer

Node.js Buffer(缓冲区)

Node.js Buffer(缓冲区)

Node.js之Buffer