Codificación y Decodificación Base64: La Guía Completa

¿Qué es Base64?

Base64 es un esquema de codificación binaria a texto que representa datos binarios en formato de cadena ASCII. Se utiliza ampliamente en diversas aplicaciones informáticas, especialmente cuando es necesario codificar datos binarios que deben almacenarse y transferirse a través de medios diseñados para manejar datos textuales.

¿Por qué usar Base64?

Base64 se utiliza comúnmente por varias razones:

Cómo funciona Base64

La codificación Base64 funciona convirtiendo cada tres bytes de datos de entrada en cuatro caracteres ASCII. Aquí tienes una explicación simplificada del proceso:

  1. Toma 3 bytes de datos binarios (24 bits en total)
  2. Divide estos 24 bits en cuatro fragmentos de 6 bits
  3. Convierte cada fragmento de 6 bits a su carácter Base64 correspondiente

El alfabeto Base64 consta de 64 caracteres: A-Z, a-z, 0-9, + y /. El carácter = se utiliza para el relleno cuando la longitud de los datos de entrada no es divisible por 3.

Tabla de Codificación Base64

Valor Codificación  Valor Codificación  Valor Codificación  Valor Codificación
    0 A               17 R               34 i               51 z
    1 B               18 S               35 j               52 0
    2 C               19 T               36 k               53 1
    3 D               20 U               37 l               54 2
    4 E               21 V               38 m               55 3
    5 F               22 W               39 n               56 4
    6 G               23 X               40 o               57 5
    7 H               24 Y               41 p               58 6
    8 I               25 Z               42 q               59 7
    9 J               26 a               43 r               60 8
   10 K               27 b               44 s               61 9
   11 L               28 c               45 t               62 +
   12 M               29 d               46 u               63 /
   13 N               30 e               47 v
   14 O               31 f               48 w         (relleno) =
   15 P               32 g               49 x
   16 Q               33 h               50 y

Base64 en Lenguajes de Programación

Base64 en Python


import base64

# Codificación
texto = "¡Hola, Mundo!"
codificado = base64.b64encode(texto.encode('utf-8')).decode('utf-8')
print(f"Codificado: {codificado}")

# Decodificación
decodificado = base64.b64decode(codificado).decode('utf-8')
print(f"Decodificado: {decodificado}")
            

Base64 en JavaScript


// Codificación
let texto = "¡Hola, Mundo!";
let codificado = btoa(texto);
console.log(`Codificado: ${codificado}`);

// Decodificación
let decodificado = atob(codificado);
console.log(`Decodificado: ${decodificado}`);
            

Base64 en PHP


<?php
// Codificación
$texto = "¡Hola, Mundo!";
$codificado = base64_encode($texto);
echo "Codificado: " . $codificado . "\n";

// Decodificación
$decodificado = base64_decode($codificado);
echo "Decodificado: " . $decodificado . "\n";
?>
            

Casos de Uso Comunes para Base64

Incrustación de Imágenes en HTML/CSS

Base64 se puede utilizar para incrustar imágenes pequeñas directamente en HTML o CSS, reduciendo las solicitudes HTTP:


<img src="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAABCAYAAAAfFcSJAAAACklEQVR4nGMAAQAABQABDQottAAAAABJRU5ErkJggg==" alt="Imagen codificada en Base64">
            

Envío de Datos en JSON

Cuando necesitas incluir datos binarios en JSON, a menudo se utiliza la codificación Base64:


{
  "nombre": "ejemplo.png",
  "contenido": "iVBORw0KGgoAAAANSUhEUgAAAAEAAAABCAYAAAAfFcSJAAAACklEQVR4nGMAAQAABQABDQottAAAAABJRU5ErkJggg=="
}
            

Base64 seguro para URL

Para su uso en URLs, una variación de Base64 reemplaza + y / por - y _ respectivamente:


Estándar: a+b/c==
Seguro para URL: a-b_c==
            

Herramientas Base64 en Línea

Aquí tienes algunas herramientas en línea populares para codificar y decodificar Base64:

Base64 y Seguridad

Advertencia: Base64 es un esquema de codificación, no un método de encriptación. No proporciona ninguna seguridad ni protección de datos. Nunca uses Base64 para almacenar o transmitir información sensible sin la encriptación adecuada.

Aunque Base64 puede hacer que los datos sean ilegibles para los humanos, es trivialmente fácil de decodificar. Siempre usa métodos de encriptación adecuados para datos sensibles.

Ventajas y Desventajas de Base64

Ventajas:

Desventajas:

Preguntas Frecuentes

¿Es Base64 una forma de encriptación?

No, Base64 no es encriptación. Es un esquema de codificación que representa datos binarios en formato de cadena ASCII. No proporciona ninguna seguridad.

¿Por qué la codificación Base64 aumenta el tamaño del archivo?

La codificación Base64 aumenta el tamaño del archivo porque representa 3 bytes de datos con 4 caracteres. Esto resulta en un aumento de tamaño de aproximadamente el 33%.

¿Se pueden comprimir los datos codificados en Base64?

Sí, los datos codificados en Base64 se pueden comprimir, pero generalmente es más eficiente comprimir los datos antes de codificarlos en Base64.