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
有一个 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