问个base64解码问题
发布于 8 年前 作者 im-here 4100 次浏览 来自 问答

原字符串(有点长,往后拉一拉): 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 回复

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

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

回到顶部