#algorithm #encoding #base64 #implementation #decoding
#алгоритм #кодирование #base64 #реализация #декодирование
Вопрос:
Я удаляю отступы с конца строки, закодированной в base64. Я обнаружил, что могу успешно декодировать строку, не добавляя сначала обратно дополнение (по крайней мере, в php). Является ли это результатом спецификации base64 или зависит от реализации?
И связанный с этим вопрос, может ли =
знак существовать в строке, закодированной в base64, кроме как в качестве дополнения, т. Е. Если это не зависит от реализации, безопасно ли просто удалять конечные знаки равенства или возможно, что последним «реальным» символом мог быть один?
Ответ №1:
Хотя для декодирования строки base64 заполнение не требуется, существуют некоторые реализации, которые выдают ошибку, если заполнение было удалено.
В RFC говорится:
Implementations MUST include appropriate pad characters at the end of
encoded data unless the specification referring to this document
explicitly states otherwise.
Символ = всегда будет использоваться только для заполнения.