Ответ 1
Согласно RFC 4648 Section 10, тестовые векторы,
BASE64("") = ""
Я бы предположил, что инверсия должна также сохраняться.
Один из моих колледжей говорил мне, что пустая строка не является допустимой строкой данных, закодированной в base64. Я не думаю, что это правда (он слишком ленив, чтобы разобрать его), но после того, как он немного поработал и даже проверил RFC, я не нашел никаких документация, в которой явно указывается, как правильно закодировать кадр с нулевой длиной байта в base64.
Итак, вопрос: есть ли у вас ссылка на какую-то официальную документацию, в которой явно указано, как нулевые байты должны быть закодированы в base64?
Согласно RFC 4648 Section 10, тестовые векторы,
BASE64("") = ""
Я бы предположил, что инверсия должна также сохраняться.
Моя мысль об этом заключается в том, что существует два возможных значения base64, которые может произвести пустая строка; либо пустую строку, либо строку, состоящую целиком из символов пэда ('==='). Любая другая допустимая строка base64 содержит информацию. Во втором случае мы можем применить к RFC следующее правило:
Если в конце найдено больше допустимого числа символов пэда строки, например, строки базы 64, заканчивающейся символом "===", лишние символы пробела могут быть проигнорированы.
Поскольку их можно игнорировать, они могут быть удалены из результирующей закодированной строки без последствий, снова оставив нам пустую строку в качестве представления base64 пустой строки.