Conceptos básicos de la línea de comandos de Linux: Codificación y decodificación de cadenas Base64
08:50, 30.04.2024
Codificación y decodificación Base64 en la línea de comandos de Linux: Una visión general
Entre una variedad de métodos para representar datos binarios en formato de cadena ASCII, Base64 es uno de los más comunes, empleado particularmente para la codificación de imágenes como otros documentos en adjuntos de correo electrónico y en URLs así como otros casos, donde se necesita convertir algo en texto puro. A continuación, vamos a mostrarle cómo utilizar herramientas de terminal de comandos en Linux para codificar y decodificar cadenas Base64.
1. Uso de Base64
Base64 es el comando básico para base64 que puede utilizarse tanto para codificar como para descodificar.
1.1. Codificación con Base64
Para codificar un archivo o un fragmento de texto, utilice el comando:
base64 filename > outputfile
"Filename" debe sustituirse por el nombre del archivo que desea codificar y "outputfile" por el nombre deseado para el archivo codificado.
Para codificar un trozo de texto:
echo -n "yourtext" | base64
Sustituya "tutexto" por el texto que quiera codificar respectivamente.
1.2. Descodificación de Base64
En Base64 la descodificación se realiza con el mismo comando base 64 al que se añade la opción -d.
Para descodificar un archivo, escriba:
base64 -d encodedfile > outputfile
Endodedfile debe sustituirse por el nombre de su archivo, mientras que outputfile debe sustituirse por el nombre deseado del archivo de salida.
Para descodificar texto, escriba:
echo -n "encodedtext" | base64 -d
Sustituya "encodedtext" por el texto que desea codificar.
Por ejemplo:
Codificación:
echo -n "Hello, Base64!" | base64
Output: SGVsbG8sIEJhc2U2NCE=
base64 mydocument.txt > encoded_document.txt
Descodificación:
echo -n "SGVsbG8sIEJhc2U2NCE=" | base64 -d
Salida: Hello, Base64!
base64 -d encoded_document.txt > decoded_document.txt
2. OpenSSL para operaciones Base64
Otra opción que está disponible al usar el OpenSSL, es que, entre otras cosas, ofrece Base64 para codificación y decodificación. Echemos un vistazo.
Codificación Base64 con OpenSSL
Puede codificar un archivo o texto con OpenSLL utilizando el comando openssl enc con la opción base64.
Codificación de un archivo:
openssl enc -base64 -in filename -out outputfile
Sustituya filename por el nombre del fichero que va a codificar y outputfile por el nombre que desee para el fichero codificado.
Para codificar texto:
echo -n "yourtext" | openssl enc -base64
Sustituye yourtext por el texto que quiera codificar.
Descodificación Base64 con OpenSSL
La descodificación de un archivo o cadena codificada en Base64 se realiza con el mismo comando openssl enc, así como con las opciones -d y -base64.
Para descodificar un archivo:
openssl enc -base64 -d -in encodedfile -out outputfile
encodedfile debe sustituirse por el nombre del archivo codificado en Base64 y outputfile por el nombre que desee para el archivo decodificado.
Para descodificar un texto:
echo -n "encodedtext" | openssl enc -base64 -d
encodedtext debe sustituirse por el texto codificado en Base64.
Ejemplos:
Codificación:
echo -n "Hello, OpenSSL!" | openssl enc -base64
Output SGVsbG8sIE9wZW5TU0wTIQ==
openssl enc -base64 -in mydocument.txt -out encoded_document.txt
Decodificación:
echo -n "SGVsbG8sIE9wZW5TU0wTIQ==" | openssl enc -base64 -d
Salida: Hello, OpenSSL!
openssl enc -base64 -d -in encoded_document.txt -out decoded_document.txt
3. Operaciones Base64 con Python
También puede realizar operaciones Base64 con Python y puede hacerlo directamente, ya que el módulo base64 está incluido en la biblioteca estándar de Python.
Codificación Base64 con Python
La codificación Base64 con Python se realiza con la función base64.b64encode().
Codificación de una cadena:
import base64
original_text = "Hello, Base64!"
encoded_text = base64.b64encode(original_text.encode()).decode()
print(encoded_text)
En el ejemplo anterior, el "¡Hola, Base64!" se convierte a su representación codificada en Base64.
Codificación de un archivo:
import base64
with open("filename", "rb") as file:
binary_data = file.read()
encoded_data = base64.b64encode(binary_data).decode()
with open("encoded_file.txt", "w") as encoded_file:
encoded_file.write(encoded_data)
" Filename" debe sustituirse por el nombre del archivo que desea codificar y "encoded_file.txt" por el nombre deseado para el archivo codificado.
Descodificación Base64 con Python
La decodificación Base64 con Pythong puede realizarse con la función base64.b64decode().
Para decodificar una cadena:
import base64
encoded_text = "SGVsbG8sIEJhc2U2NCE="
decoded_text = base64.b64decode(encoded_text).decode()
print(decoded_text)
En este ejemplo, se descodifica la cadena codificada en Base64 "SGVsbG8sIEJhc2U2NCE=".
Descodificación de un archivo:
import base64
with open("encoded_file.txt", "r") as encoded_file:
encoded_data = encoded_file.read()
decoded_data = base64.b64decode(encoded_data)
with open("decoded_file.bin", "wb") as decoded_file:
decoded_file.write(decoded_data)
" encoded_file.txt" debe sustituirse por el nombre del archivo codificado en Base64 y "decoded_file.bin" por el nombre deseado para el archivo descodificado.
4. Manipulación de Base64 en Perl
Perl también ofrece opciones para el empleo de operaciones de codificación y descodificación Base64 con un módulo especial dedicado MIME::Base64 con las funciones encode_base64 y decode_base64 para codificar y descodificar datos en formato Base64.
Codificación Base64 en Perl
Para codificar una cadena:
use MIME::Base64;
my $original_text = "Hello, Base64!";
my $encoded_text = encode_base64($original_text);
print $encoded_text;
En el ejemplo anterior, la cadena "¡Hola, Base64!" se codifica a su representación Base64.
Para codificar un archivo:
use MIME::Base64;
my $filename = "filename";
open my $fh, '<', $filename or die "Cannot open file: $!";
my $binary_data = do { local $/; <$fh> };
close $fh;
my $encoded_data = encode_base64($binary_data);
open my $encoded_fh, '>', "encoded_file.txt" or die "Cannot open file: $!";
print $encoded_fh $encoded_data;
close $encoded_fh;
Debe sustituir "filename" por el nombre del fichero que desea codificar y "encoded_file.txt" por el nombre del fichero deseado respectivamente.
Descodificación Base64 en Perl
La decodificación de datos codificados en Base64 en Perl puede realizarse con la función decode_base64 del módulo MIME::Base64.
Decodificación de una cadena:
use MIME::Base64;
my $encoded_text = "SGVsbG8sIEJhc2U2NCE=";
my $decoded_text = decode_base64($encoded_text);
print $decoded_text;
En el ejemplo anterior, se descodifica la cadena codificada en Base64 "SGVsbG8sIEJhc2U2NCE=".
Descodificación de un archivo:
use MIME::Base64;
my $encoded_filename = "encoded_file.txt";
open my $encoded_fh, '<', $encoded_filename or die "Cannot open file: $!";
my $encoded_data = do { local $/; <$encoded_fh> };
close $encoded_fh;
my $decoded_data = decode_base64($encoded_data);
open my $decoded_fh, '>', "decoded_file.bin" or die "Cannot open file: $!";
print $decoded_fh $decoded_data;
close $decoded_fh;
" encoded_file.txt" debe sustituirse por el nombre del archivo codificado en Base64 "decoded_file.bin" por el nombre deseado para el archivo decodificado.
Conclusión
Base64 es una herramienta importante para decodificar información en forma de texto así como para decodificarla eventualmente. En la guía anterior hemos cubierto el uso de la herramienta Base64 para varias interfaces. Esperamos que estas instrucciones hayan sido lo suficientemente claras y le deseamos buena suerte.