CNode

问个base64解码问题

问答
Iim-here发布于9 年前最后回复9 年前2 回复4722 浏览0 收藏

原字符串(有点长,往后拉一拉): var key='MjhERTEwQkFBRDJBRTRERDhDM0FBNkZBMzNFQ0RFMTFCQTBCQzE3QU1UUTRPRFV6TkRjeU16UTVNRFUyTnpnek9ETXJNVE15T1RRME9EZzROVGsyTVRreU1ETXdNRE0zTnpjd01EazNNekV5T1RJek1qUXlNemN4'; 这是第三方平台给过来的字符串,要求base64解码,解出来的是一个中间有个“+”号连接的字符串。 nodejs代码如下:

console.log(str) //28DE10BAAD2AE4DD8C3AA6FA33ECDE11BA0BC17AMTQ4ODUzNDcyMzQ5MDU2NzgzODMrMTMyOTQ0ODg4NTk2MTkyMDMwMDM3NzcwMDk3MzEyOTIzMjQyMzcx
console.log(new Buffer(str,'base64').toString()); //^�14885347234905678383+132944888596192030037770097312923242371

解码了2次才是最终结果,而且前面还有2个乱码(node版本 0.10.32)

c#代码:

String decodeBaseStr = Base64.DecodeBase64(key);
Console.WriteLine(decodeBaseStr");//14885347234905678383+132944888596192030037770097312923242371

一次就得到正确的结果了

网页上的解码工具: 第一次解码:

28DE10BAAD2AE4DD8C3AA6FA33ECDE11BA0BC17AMTQ4ODUzNDcyMzQ5MDU2NzgzODMrMTMyOTQ0ODg4NTk2MTkyMDMwMDM3NzcwMDk3MzEyOTIzMjQyMzcx

再解码:

ۀė@@=ð-@߱Mu
^14885347234905678383+132944888596192030037770097312923242371

这种问题nodejs该如何解码呢?

查看回复

回复 (2)

Z
zhou-yg#1·9 年前

感觉是原始数据有问题,我用python和node得到结果是一样的,前面有乱码

I
im-here#2·9 年前
引用 zhou-yg感觉是原始数据有问题,我用python和node得到结果是一样的,前面有乱码

@zhou-yg 没办法,接别人的SDK,但是我用C#就没问题,真是日了狗。

参与回复
登录后即可参与回复。登录