Node.js (openssl enc -base64 -d -A) 中的 OpenSSL base64 enc 等价物?

Equivalent of OpenSSL base64 enc in Node.js (openssl enc -base64 -d -A)?

有一个 API 我正在处理 returns 压缩和双 Base64 编码的数据。我试过在 NPM 中使用几个 Base64 库,但都无济于事。由于输出编码错误,执行每个库的等价物 decodeBase64(decodeBase64(something)) 总是失败。

这项工作在 shell:something | openssl enc -base64 -d -A | openssl enc -base64 -d -A | gunzip。我本质上是在寻找一种与 something | openssl enc -base64 -d -A | openssl enc -base64 -d -A | gunzip 行为完全相同的 Node.js 方法。

以下库在这种情况下不起作用: base64 base-64 js-base64

解决方案是找到一个可以处理 Base64(镜像 OpenSSL)的字符串和二进制表示的库。

const forge = require('node-forge')
const zlib  = require('zlib')

const pass1  = forge.util.decode64('SDRzSUFBQUFBQUFBQUNzcEtrMEZBSTFNL1AwRUFBQUE=')
const pass2  = forge.util.binary.base64.decode(pass1)
const result = zlib.gunzipSync(new Buffer(pass2)).toString()

console.log(result) // true