解码base64字符串时输出错误

时间:2016-05-26 17:43:24

标签: vb.net base64

我在vb.net中解码这个base64字符串时似乎总是得到错误的输出(我认为它的base64?看起来真的很像)

即时通讯使用frombase64string函数

我这样做了

  Dim b64str = "0DDQQL3uAikQBgAAc4cqK4WnSQBg4SAgExEAAF3BAmAILYojRgkBhUrBAgEDRw=="
        Dim i As String = System.Text.Encoding.Unicode.GetString(Convert.FromBase64String(b64str))
        MsgBox(i)

但我总是得到这个输出

バ䃐⤂ؐ

这似乎不正确

2 个答案:

答案 0 :(得分:1)

  

0DDQQL3uAikQBgAAc4cqK4WnSQBg4SAgExEAAF3BAmAILYojRgkBhUrBAgEDRw ==

它看起来像Base64,长度是正确的大小,字符属于Base64字符集,尾随“==”是合理的。当然它可能不是Base64编码。

Base64解码结果为:

  

D0 30 D0 40 BD EE 02 29 10 06 00 00 73 87 2A 2B 85 A7 49 00 60 E1 20 20 13 11 00 00 5D C1 02 60 08 2D 8A 23 46 09 01 85 4A C1 02 01 03 47 < / p>

现在问题,这不是一个字符串,它是一个8位字节的数组。因此它不能显示为字符。 0x00字节将信号通知字符串的结尾到print方法,并且可以忽略不可表示的字符,用特殊字符显示或多个字节可以显示为必须字节的unicode字符。唯一保证和通常的显示是十六进制,如上所述。

答案 1 :(得分:0)

String几乎可以是任何东西。它可能是加密算法的结果,如sha *。你的错误是你认为必须是base64,因为可能是

这是一个有效的观察,它可能是base64,所以运行该函数是完全有效的,但是你需要根据结果确定它是基于特定逻辑的base64还是其他东西,这个问题没有描述。