2016-08-26 1 views
0

Так, например, у меня есть кодированная base64 строка и вы хотите ее декодировать. Длина строки составляет 29 символов, поэтому, очевидно, для ее декодирования мне нужно использовать 32 символа.Почему Convert.FromBase64() допускает только 2 заполняющих символа? (C#)

Convert.FromBase64() допускает до 2 дополнительных ковров. Просто нет случая, когда мне понадобится 3 дополнительных символа из-за кодировки base64?

ответ

1

Длина строки составляет 29 символов

Это невозможно байт [], чтобы быть закодированы в base64 и производить строку из 29 символов, независимо от заполнения. Один char base64 генерирует 6 бит. Байт [21] имеет 21 x 8 = 168 бит => 168/6 = 28.0 base64 символов, идеально подходит. Байт [22] имеет 22 x 8 = 176 бит => 176/6 = 29,33 символов, округляет до 30 символов. Никакой возможный байт [] не может создать 29 символов.

So Convert.FromBase64() правильно сообщает вам, что данные являются мусором.

 Смежные вопросы

  • Нет связанных вопросов^_^