Base64 vs Hexadecimal
Base64 y hexadecimal son dos formas de representar datos binarios como texto, con distinto compromiso entre densidad y legibilidad.
| Caracteres usados | 64 (A-Z, a-z, 0-9, +, /) | 16 (0-9, A-F) |
| Bits por carácter | 6 bits | 4 bits |
| Aumento de tamaño | ~33% más grande que el original | 100% más grande (el doble) |
| Legibilidad para humanos | Difícil de leer a simple vista | Fácil de interpretar byte a byte |
| Uso típico | Emails (MIME), JWT, data URIs, JSON | Hashes, colores CSS, direcciones MAC, depuración |
| Caracteres especiales en URLs | Requiere variante URL-safe | Siempre seguro en URLs |
Base64 y hexadecimal (hex) son dos esquemas de codificación que convierten datos binarios en texto legible por sistemas que solo esperan caracteres imprimibles, pero lo hacen con objetivos y eficiencias distintas.
Hexadecimal usa una base de 16 símbolos (0-9 y A-F), donde cada carácter representa exactamente 4 bits (medio byte). Esto hace que la codificación hexadecimal sea muy predecible y fácil de leer manualmente: cada par de caracteres hex corresponde exactamente a un byte, lo que la convierte en la opción favorita para representar hashes (MD5, SHA-256), colores CSS (#FF5733), direcciones MAC o para depurar datos binarios byte a byte. Su coste es que duplica el tamaño del dato original: un byte (8 bits) requiere siempre 2 caracteres hex.
Base64 usa un alfabeto de 64 símbolos (A-Z, a-z, 0-9, más "+" y "/"), donde cada carácter representa 6 bits. Al empaquetar 3 bytes (24 bits) en 4 caracteres de salida, Base64 es notablemente más eficiente en espacio que hex, aumentando el tamaño solo en torno a un 33% frente al 100% de hex. Esa eficiencia lo convierte en la opción preferida para transportar datos binarios más grandes por canales de texto: adjuntos de email (codificación MIME), imágenes embebidas en CSS/HTML mediante data URIs, o el payload de tokens JWT.
La elección entre ambos depende del propósito. Si el objetivo es que un humano pueda leer o comparar el dato fácilmente byte a byte —como ocurre al verificar un hash de integridad publicado en una web—, hexadecimal es más cómodo porque cada carácter mapea de forma directa y predecible a un valor conocido. Si el objetivo es minimizar el tamaño de datos binarios más grandes que hay que incrustar en texto —un archivo adjunto, una imagen, un token de autenticación—, Base64 es la opción más eficiente. Una variante importante es Base64url, que sustituye "+" y "/" por "-" y "_" para que el resultado sea seguro dentro de URLs sin necesidad de un escapado adicional, tal y como se usa en los tokens JWT.
Herramientas relacionadas
Preguntas frecuentes
¿Cuál ocupa menos espacio, Base64 o hexadecimal?
Base64: aumenta el tamaño original en torno a un 33%, frente al 100% (el doble) que añade la codificación hexadecimal.
¿Puedo usar Base64 directamente en una URL?
El Base64 estándar no siempre es seguro en URLs por los caracteres "+" y "/". Para eso existe la variante Base64url, que los sustituye por "-" y "_".
¿Por qué los hashes se muestran en hexadecimal y no en Base64?
Por convención y legibilidad: cada byte se representa siempre con 2 caracteres hex fijos, lo que facilita comparar visualmente dos hashes carácter a carácter.
Otras comparativas