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

时间:2015-10-02 22:42:54

标签: node.js openssl

我正在使用的API返回经过gunzipped和双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 基-64 JS-BASE64

1 个答案:

答案 0 :(得分:1)

解决方案是找到一个可以处理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