Руководства

Ошибки padding в Base64: причина и исправление

Коротко о знаках =, ошибке incorrect padding и безопасной починке.

Короткий ответ

Base64 работает группами по четыре символа. Последняя группа иногда получает один или два знака = для восстановления последних байтов.

Сначала длина

Уберите пробелы и переносы. Остаток длины по модулю 4 равен 0: ничего не добавляйте. Равен 2: добавьте ==. Равен 3: добавьте =. Равен 1: строка неполная или использует другой алфавит.

Проверьте алфавит

Обычный Base64 использует + и /. Base64URL использует - и _. JWT и URL-токены часто требуют Base64URL.

Не скрывайте порчу

Добавляйте padding только когда это подтверждает длина. Не удаляйте случайные символы ради исчезновения ошибки.

Безопасный порядок

Скопируйте заново, удалите пробелы, выберите алфавит, примените правило mod 4 и проверьте тип результата.

Технические источники