nodejs代码,如何利用zlib压缩和还原一段文字?
发布于 作者:苏南大叔 来源:程序如此灵动~

本文描述一下zlib
库里面的几个加密(压缩)解密(解压缩)函数。实际上是压缩解压缩的过程,但是,因为结果对于大家来说,是个天书,所以也算加密解密的过程。本文共涉及三种压缩的方式:deflate
、deflateRaw
、gzip
。

大家好,这里是苏南大叔的程序如此灵动博客,这里记录苏南大叔和计算机代码的故事。本文描述利用node
的zlib
模块,对文字进行压缩和解压缩。测试环境:win10
,node@16.14.2
。
deflate
和gzip
这里大家也就别抬杠了,根据公开资料显示,deflate
是一种算法,它的格式是zlib
。gzip
也是一种格式,目前它默认且唯一的算法就是deflate
。也就是说,deflate
、zlib
、gzip
,目前来说,几乎是等同的。虽然名字不同,zlib
和gzip
都是对deflate
算法的一个包装。
值得一提的是:在大家浏览网页的时候,浏览器都在无时不刻的发送这样的request header
头信息:
然后,服务器端返回格式gzip
的response header
数据,:
这个也算是标配,在SEO
中算加分项,服务器端是看着客户端说接收“gzip, deflate”编码后,才会发出gzip
格式的数据的。否则会直接显示没有压缩过的代码(虽然对于大家来说,这个过程是无感的)。至于浏览器头里面的br
是啥意思,目前未知。
导入类库
引入代码:
值得特殊说明的是:这些加密解密过程,都是异步的。也就是说,本文中的代码,并不保证执行顺序。
deflate
加密,inflate
和unzip
解密
deflateRaw
加密,inflateRaw
解密
gzip
加密,gunzip
/unzip
解密
相关链接
总结
加密方法 | 加密结果显示附加函数 | 解密方法 | 解密结果显示附加函数 |
---|---|---|---|
deflate | buffer.toString('base64') | inflate / unzip | buffer.toString() |
deflateRaw | buffer.toString('base64') | inflateRaw | buffer.toString() |
gzip | buffer.toString('base64') | gunzip / unzip | buffer.toString() |
链接自取:


