Si hace lo contrario, notará que la cadena no está completa:
$ echo '{"foo":"bar","baz":"bat"}' | base64
eyJmb28iOiJiYXIiLCJiYXoiOiJiYXQifQo=
$ echo "eyJmb28iOiJiYXIiLCJiYXoiOiJiYXQifQo=" | base64 -di
{"foo":"bar","baz":"bat"}
Extractos de ¿Por qué la codificación base64 requiere relleno si la longitud de entrada no es divisible por 3?
¿Qué son los caracteres de relleno?
Los caracteres de relleno ayudan a satisfacer los requisitos de longitud y no tienen ningún significado.
Sin embargo, el relleno es útil en situaciones en las que las cadenas codificadas en base64 se concatenan de tal manera que se pierden las longitudes de las secuencias individuales, como podría suceder, por ejemplo, en un protocolo de red muy simple.
Si se concatenan cadenas sin rellenar, es imposible recuperar los datos originales porque se pierde la información sobre el número de bytes impares al final de cada secuencia individual. Sin embargo, si se utilizan secuencias rellenadas, no hay ambigüedad y la secuencia en su conjunto puede decodificarse correctamente.
La herramienta de línea de comandos es exigente con la presencia de caracteres de relleno. Esa cadena tiene 34 caracteres, por lo que debería haber dos =
signos como relleno al final.
$ echo "eyJmb28iOiJiYXIiLCJiYXoiOiJiYXQifQ==" | base64 -di; echo
{"foo":"bar","baz":"bat"}