GNU/Linux >> Tutoriales Linux >  >> Linux

base64 -d decodifica, pero dice entrada no válida

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"}

Linux
  1. ¿Ejecutar comando Nohup con entrada?

  2. ¿Los 'si'?

  3. Ofuscar cadenas en Python

  4. Firefox:color del campo de entrada

  5. Top dice que se usa el 100 % de la CPU, pero ¿el 50 % de los núcleos están inactivos?

Cómo escribir emoji en Linux

Network Manager dice conectividad limitada pero todo funciona

Explicación de la redirección de entrada y salida en Linux

Ubuntu dice 13.04 pero Lsb_release dice 12.10?

Sustitución de procesos:una forma poco común pero avanzada de redirección de entrada/salida en Linux

postfix/dovecot dice que no se proporcionó la configuración de postmaster_address, pero es