我正在使用的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
答案 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