如何确定所需的UUDecoding方法?

时间:2019-02-20 14:20:07

标签: c# encoding uuencode uudecode

我正在与返回uuencoded数据的设备通信:

ASCII::EZQAEgETAhMQIBwIAUkAAABj

十六进制::45-5A-51-41-45-67-45-54-41-68-4D-51-49-42-77-49-41-55-6B- 41-41-41-42-6A

此设备的文档指出上述内容已进行uuencoded编码,但我不知道如何对其进行解码。最终结果将不是人类可读的字符串,但是第一个字节显示了后续产品数据的字节数。 (是23还是24?)

我尝试使用Crypt2对其进行解码;它似乎与644、666、744个模式不匹配。

我尝试将其写在Wiki之后:https://en.wikipedia.org/wiki/Uuencoding#Formatting_mechanism

没有道理!如何解码此uuencoded数据?

2 个答案:

答案 0 :(得分:3)

正如@HansKilian在评论中说的那样,该代码未进行uuencoded。

如果您对其进行base64解码,则会得到(以十六进制表示):

  

11 94 00 12 01 13 02 13 10 20 1c 08 01 49 00 00 00 63

第一个数字(十进制为17)与它后面的字节数相同,并且符合:

  

最终结果将不是人类可读的字符串,但第一个字节显示以下产品数据的字节数。

(@ HansKilian最初打电话说它是base64编码的。此答案通过查看第一个解码的字节来确认,但请接受他的回答)

答案 1 :(得分:3)

我同意@ canton7,它看起来像是base64编码的。您可以这样解码

byte[] decoded = Convert.FromBase64String("EZQAEgETAhMQIBwIAUkAAABj");

如果需要,您可以打印出这样的十六进制值

Console.WriteLine(BitConverter.ToString(decoded));

可打印

11-94-00-12-01-13-02-13-10-20-1C-08-01-49-00-00-00-63