Как определить необходимый метод UUDecoding? - PullRequest
0 голосов
/ 20 февраля 2019

Я связываюсь с устройством, которое возвращает uuencode данные:

ASCII: EZQAEgETAhMQIBwIAUkAAABj

HEX: 45-5A-51-41-45-67-45-54-41-68-4D-51-49-42-77-49-41-55-6B-41-41-41-42-6A

Документация дляэто устройство утверждает, что вышеприведенное кодировано, но я не могу понять, как его декодировать.Конечный результат не будет читаемой человеком строкой, но первый байт показывает количество байтов для следующих данных продукта.(Что будет 23 или 24?)

Я пытался использовать Crypt2 для его декодирования;похоже, он не соответствует режимам 644, 666, 744.

Я пытался написать это вручную, следуя вики: https://en.wikipedia.org/wiki/Uuencoding#Formatting_mechanism

Не имеет смысла!Как мне декодировать эти uuencoded данные?

Ответы [ 2 ]

0 голосов
/ 20 февраля 2019

Я согласен с @ 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
0 голосов
/ 20 февраля 2019

Как говорит @HansKilian в комментариях, это не uuencoded.

Если вы base64-декодируете его, вы получите (в шестнадцатеричном формате):

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

Первое число, 17 в десятичном виде, соответствует количеству следующих за ним байтов, что соответствует:

Окончательный результат не будет удобочитаемой строкой, но первый байт показывает количество байтов для следующих данных продукта.

(@ HansKilian сделал исходный вызов, что он был закодирован в base64. Этот ответ подтверждает это, посмотрев на первый декодированный байт, но, пожалуйста, примите его ответ)

...