Overview
En este tutorial, aprenderá a codificar y decodificar base64 desde la línea de comandos en Linux. También aprenderá qué es la codificación base64 y por qué nunca debe utilizarse para proteger los datos del acceso no autorizado.
La codificación y decodificación de datos base64 tiene muchos casos de uso. Uno de ellos es asegurar la integridad de los datos cuando se transfieren datos a través de la red, mientras que otro es el almacenamiento de Secretos en Kubernetes.
Después de leer este tutorial entenderás cómo codificar fácilmente archivos o cadenas, y luego decodificarlos de nuevo.
Cómo codificar en base64 en Ubuntu, Debian, OSX y Red Hat
Si está ejecutando distribuciones de linux populares, como Ubuntu, Debian, CentOS o Red Hat, la herramienta de línea de comandos base64 suele estar preinstalada. No debería tener que realizar ningún paso adicional.
OSX también viene con su propia versión de base64.
¿Por qué Base64 codifica los datos
Transferir un archivo ASCII a través de la red puede causar corrupción si no se decodifica correctamente. La razón es que los archivos ASCII se convierten en cadenas de bytes, y cuando esos bytes se decodifican incorrectamente de vuelta a ASCII sus datos se corrompen.
Base64 se introdujo como una forma de convertir sus datos ASCII en bytes arbitrarios, donde luego podrían ser transferidos como bytes, y decodificados correctamente de vuelta a ASCII.
En resumen, la codificación base64 asegura la integridad de nuestros datos cuando se transfieren a través de la red.
Base64 no es encriptación
La codificación de archivos no es una encriptación y nunca debe utilizarse para asegurar datos sensibles en el disco. Más bien es una forma útil de transferir o almacenar grandes datos en forma de cadena.
Aunque puede ofuscar esos datos reales de los navegantes, cualquiera que tenga acceso a los datos codificados en base64 puede descifrarlos fácilmente.
Codificación de una cadena en base64
Para codificar una cadena en base64 puede canalizar un comando echo en la herramienta de línea de comandos base64. Para asegurarse de que no se añaden caracteres extra, ocultos, utilice la bandera -n
.
Sin la bandera -n
puede capturar caracteres ocultos, como retornos de línea o espacios, que corromperán su codificación base64.
echo -n 'my-string' | base64
Que dará como resultado lo siguiente
bXktc3RyaW5n
Codificación base64 de un archivo
Para codificar en base64 un archivo
base64 /path/to/file
Esto dará como resultado una cadena muy larga codificada en base64. Es posible que desee escribir la salida estándar a un archivo en su lugar.
bas64 /path/to/file > output.txt
Decodificación de cadenas
Para decodificar con base64 necesita utilizar la bandera --decode
. Con la cadena codificada, puede canalizar un comando echo en base64 como lo hizo para codificarla.
Usando la codificación de ejemplo mostrada arriba, vamos a decodificarla a su forma original.
echo -n 'bXktc3RyaW5n' | base64 --decode
Si la codificación no se ha corrompido, la salida debería ser la cadena original.
Decodificación de archivos
Para decodificar un archivo con contenido codificado en base64, simplemente hay que proporcionar la ruta del archivo con la bandera --decode
.
base64 --decode /path/to/file
Al igual que con la codificación de archivos, la salida será una cadena muy larga del archivo original. Es posible que desee la salida de stdout directamente a un archivo.
base64 --decode /path/to/file > output.txt
Conclusión
En este tutorial, usted aprendió cómo base64 codificar archivos y cadenas. Esto es algo que se hace comúnmente para transferir archivos de tal manera que quede