Это не кодировка base 64, это код base 64 URL . Замените -
на +
и _
(символ подчеркивания) на символ /
, затем дополните его символами =
, пока у вас не будет кратно 4 базовым 64 символам (без учета пробелов). Затем декодируйте и результат должен быть правильным. В противном случае URL-код базы 64, вероятно, был поврежден.
Я предполагаю, что вы удалили символы и заменили их точкой, потому что точки не должны присутствовать в безопасной базе URL 64.
Конечно, поиск и использование декодера base64url будет более эффективным, чем упомянутая здесь схема c find / replace / append.