Codificación Base64
Herramienta gratuita de codificación y decodificación Base64 en línea. Soporta conjuntos de caracteres UTF-8/ASCII/ISO-8859-1, con tres variantes: Standard, URL-Safe y MIME. Muestra la tasa de aumento de tamaño en tiempo real, y los saltos de línea MIME cumplen con el estándar RFC 2045.
Relacionado
¿Qué es la codificación Base64?
Base64 es un esquema de codificación de binario a texto basado en 64 caracteres ASCII imprimibles, definido por primera vez por RFC 2045 (estándar MIME). Base64 convierte cada 3 bytes (24 bits) en 4 caracteres Base64 (A-Z, a-z, 0-9, +, /), permitiendo que los datos binarios se transmitan de forma segura a través de sistemas que solo admiten texto, como encabezados HTTP, cargas JSON, documentos XML o parámetros de consulta URL.
**Base64 no es cifrado**, solo proporciona conversión de formato de datos, cualquiera puede decodificarlo fácilmente. Si necesita proteger datos sensibles, utilice un esquema de cifrado real como AES. Los usos típicos de Base64 incluyen: HTTP Basic Authentication (`Authorization: Basic dXNlcjpwYXNz`), segmentos header y payload de tokens JWT (formato Base64URL), Data URI (`data:image/png;base64,...`), codificación MIME de adjuntos de correo, etc.
**URL-Safe Base64** (RFC 4648 §5) reemplaza los +/ del Base64 estándar con -_ y generalmente omite el padding =. Esto hace que el resultado codificado pueda aparecer de forma segura en URLs, rutas de archivos o campos JSON. Los tokens JWT, el code_verifier de OAuth PKCE y AWS Signature V4 utilizan la codificación URL-Safe Base64.
**El plegado MIME** es un estándar RFC 2045 que especifica que cada línea no debe exceder los 76 caracteres. Cuando el contenido Base64 se utiliza en correos electrónicos o ciertos escenarios que requieren visualización con saltos de línea, la variante MIME inserta automáticamente caracteres de salto de línea (`\n`) cada 76 caracteres. Este es el formato estándar para la transmisión de adjuntos de correo electrónico.
La herramienta utiliza la **API nativa btoa/atob** del navegador, combinada con lógica de procesamiento segura para UTF-8, garantizando que los caracteres multibyte como chino, japonés y emoji se codifiquen correctamente. Todos los cálculos se completan localmente, los datos no se envían a ningún servidor. Abra el panel de red de las herramientas de desarrollador del navegador para verificar que no hay solicitudes externas durante todo el proceso.
Casos de uso
- Depuración JWT: decodifique los segmentos header y payload del JWT (formato Base64URL) para ver el contenido de las reclamaciones del Token
- Basic Auth: codifique username:password como credenciales de autenticación HTTP Basic
- Desarrollo OAuth: genere code_verifier o verifique code_challenge en escenarios PKCE
- Depuración de API: codifique datos JSON o decodifique el contenido de los campos Base64 devueltos por la API
- Incrustación de imágenes Data URI: convierta íconos pequeños al formato data:image/...;base64,... para incrustar en CSS/HTML
- Codificación de adjuntos de correo: codifique adjuntos binarios de correo en formato MIME Base64
Cómo Usar
- Seleccione el modo: haga clic en Encode (codificar) o Decode (decodificar) para cambiar la dirección de procesamiento
- Seleccione la variante: Standard (estándar), URL-Safe (JWT/OAuth), MIME (formato correo con saltos de 76 caracteres)
- Ingrese el contenido: pegue el texto o la cadena Base64, se procesará automáticamente en tiempo real
- Vea las estadísticas: en la parte inferior se muestra el número de caracteres y la tasa de aumento de tamaño (la codificación aumenta el volumen en aproximadamente un 33%)
- Copie el resultado: copie con un clic la cadena Base64 o el texto decodificado
Características
- Cambio Encode/Decode con un clic: cambie libremente entre los modos de codificación y decodificación, la salida se convierte directamente en entrada para soportar el procesamiento cíclico
- Soporte para tres conjuntos de caracteres: UTF-8 (chino/japonés/emoji), ASCII, ISO-8859-1, cobertura profesional para múltiples escenarios
- Salida de tres variantes: Standard (estándar), URL-Safe (seguro para JWT/OAuth/PKCE), MIME (estándar RFC 2045 con saltos de 76 caracteres)
- Estadísticas de volumen en tiempo real: muestra el número de caracteres de entrada/salida y la tasa de aumento de tamaño en tiempo real (Base64 aumenta el volumen en aproximadamente un 33%)
- Mensajes de error amigables: cuando los caracteres están fuera de rango, muestra información de error específica en lugar de un simple error
- Divisor arrastrable: en PC puede ajustar la proporción de las áreas de edición izquierda y derecha para concentrarse en la tarea actual
- Pestañas independientes para móvil: los usuarios de teléfonos/tabletas cambian independientemente entre el área de entrada y salida para una experiencia fluida
Ejemplos de Código
Codificación Base64 en JavaScript (compatible con UTF-8, incluyendo caracteres chinos y multibyte)
// Codificación (compatible con UTF-8, incluyendo caracteres chinos y multibyte)
function b64Encode(str) {
return btoa(unescape(encodeURIComponent(str)));
}
// Decodificación (compatible con UTF-8, incluyendo caracteres chinos y multibyte)
function b64Decode(str) {
return decodeURIComponent(escape(atob(str)));
}
// Codificación URL-Safe (usada en JWT / OAuth)
function b64UrlEncode(str) {
return btoa(unescape(encodeURIComponent(str)))
.replace(/\+/g, '-')
.replace(/\//g, '_')
.replace(/=+$/, '');
}
console.log(b64Encode('Hello 世界')); // SGVsbG8g5LiW55WM
console.log(b64Decode('SGVsbG8g5LiW55WM')); // Hello 世界Codificación Base64 en Python
import base64
# Codificación Standard (UTF-8)
encoded = base64.b64encode('Hello 世界'.encode('utf-8'))
print(encoded.decode()) # SGVsbG8g5LiW55WM
# Decodificación Standard
decoded = base64.b64decode(encoded).decode('utf-8')
print(decoded) # Hello 世界
# Codificación URL-Safe (usada en JWT / OAuth)
url_safe = base64.urlsafe_b64encode('Hello 世界'.encode('utf-8'))
print(url_safe.decode()) # SGVsbG8g5LiW55WM (sin padding, debe eliminarse manualmente)
# Eliminar padding (práctica estándar en JWT)
url_safe_no_pad = url_safe.decode().rstrip('=')
print(url_safe_no_pad)Codificación Base64 en Java
import java.nio.charset.StandardCharsets;
import java.util.Base64;
public class Base64Example {
public static void main(String[] args) {
String text = "Hello 世界";
// Codificación Standard
String encoded = Base64.getEncoder()
.encodeToString(text.getBytes(StandardCharsets.UTF_8));
System.out.println(encoded); // SGVsbG8g5LiW55WM
// Decodificación Standard
String decoded = new String(
Base64.getDecoder().decode(encoded), StandardCharsets.UTF_8);
System.out.println(decoded); // Hello 世界
// Codificación URL-Safe (usada en JWT / URL)
String urlSafe = Base64.getUrlEncoder().withoutPadding()
.encodeToString(text.getBytes(StandardCharsets.UTF_8));
System.out.println(urlSafe);
// Codificación MIME (salto de línea cada 76 caracteres)
String mime = Base64.getMimeEncoder()
.encodeToString(text.getBytes(StandardCharsets.UTF_8));
}
}Preguntas Frecuentes
¿La codificación Base64 es lo mismo que el cifrado?
No. Base64 solo convierte texto a otra forma de representación reversible, cualquiera puede decodificarlo de vuelta al texto original. Si se trata de datos sensibles (contraseñas, tokens), utilice un esquema de cifrado real como AES. Base64 solo es adecuado para la conversión de formatos de datos, facilitando la transmisión de datos binarios a través de sistemas de texto.
Herramienta de cifrado AES¿Cuánto aumenta el volumen después de la codificación Base64?
La codificación Base64 aumenta el volumen de datos originales en aproximadamente un 33%. Esto se debe a que cada 3 bytes (24 bits) se codifican en 4 caracteres Base64. Por ejemplo, un texto de 100 bytes tendrá aproximadamente 133 bytes después de la codificación. La parte inferior de la herramienta muestra la tasa de aumento de tamaño en tiempo real para que pueda evaluar el tamaño de los datos. Ejemplo: `Hello` → `SGVsbG8=` (volumen +33%).
Herramienta de estadísticas Base64¿Cuál es la diferencia entre las tres variantes: Standard, URL-Safe y MIME?
Standard es el Base64 estándar que utiliza los caracteres A-Z, a-z, 0-9, +, /. URL-Safe reemplaza +/ con -_, lo que lo hace adecuado para parámetros URL y tokens JWT. MIME inserta saltos de línea cada 76 caracteres, cumpliendo con el estándar de transmisión de correo RFC 2045, adecuado para adjuntos de correo y texto de varias líneas.
URL-Safe Base64MIME Base64¿Cómo decodificar el encabezado o payload de un JWT?
JWT utiliza la codificación Base64URL (variante URL-Safe). Después de seleccionar el modo URL-Safe, simplemente pegue el primer segmento (header) o el segundo segmento (payload) del JWT para decodificarlo. Tenga en cuenta que el tercer segmento del JWT es la firma y no debe decodificarse ni verificarse aquí.
Herramienta JWT¿Qué es el Padding (relleno) de Base64?
La longitud del resultado de la codificación Base64 debe ser un múltiplo de 4. Cuando la longitud de entrada no es un múltiplo de 3, se rellena con el carácter =. La variante URL-Safe no utiliza padding. La herramienta maneja automáticamente el padding y también elimina automáticamente los caracteres = durante la decodificación.
Herramienta de Padding Base64¿Por qué btoa y atob en JavaScript no soportan caracteres chinos?
btoa y atob son API nativas del navegador que operan con el conjunto de caracteres Latin-1 (ISO-8859-1), donde cada carácter ocupa 1 byte. Los caracteres chinos ocupan 3 bytes en UTF-8, por lo que pasarlos directamente causará un error. La solución es usar primero encodeURIComponent para convertir el chino al formato %xx de secuencia de bytes UTF-8, luego usar unescape para convertirlo a una cadena Latin-1, y finalmente usar btoa para codificar.
¿Qué es el Data URI Scheme? ¿Cómo incrustar imágenes con Base64?
Data URI es un formato URI que permite incrustar datos directamente en una URL, con la sintaxis: `data:[<mediatype>][;base64],<data>`. Por ejemplo: `data:image/png;base64,iVBORw0KGgo...`. Se usa a menudo para incrustar íconos pequeños, imágenes de fondo CSS, etc., reduciendo el número de solicitudes HTTP. Pero Base64 aumenta el volumen en un 33%, por lo que solo es adecuado para archivos pequeños; los archivos grandes deben usar URL normales.
Herramienta Data URIBase64 a imagenGlosario
- RFC 4648
- Estándar oficial de codificación Base16/Base32/Base64 publicado por el IETF. Define dos alfabetos: Base64 estándar y Base64 URL-Safe, así como reglas para padding, saltos de línea, manejo de caracteres no alfabéticos, etc. Es el estándar de facto actual para la codificación Base64, reemplazando al anterior RFC 3548.Herramienta URL-Safe Base64Herramienta de Padding Base64
- RFC 2045 (MIME)
- Estándar de Extensiones Multipropósito de Correo Internet (MIME). Fue el primero en adoptar Base64 como método de codificación de transmisión de contenido de correo. Establece que la codificación Base64 no debe exceder los 76 caracteres por línea y se separa con CRLF, conocida como la variante MIME Base64.Herramienta MIME Base64
- Base64URL (URL-Safe Base64)
- Variante segura para URL definida en RFC 4648 §5. Reemplaza el + del Base64 estándar con - y el / con _, y generalmente omite el carácter de padding =. Se usa ampliamente en escenarios como tokens JWT, OAuth PKCE, parámetros URL y nombres de archivo.Herramienta URL-Safe Base64Herramienta JWT
- MIME Base64
- Variante Base64 que cumple con el estándar RFC 2045, insertando un carácter de salto de línea (CRLF) cada 76 caracteres. Se utiliza principalmente para la transmisión de adjuntos de correo electrónico, porque el protocolo SMTP temprano tenía límites en la longitud de una sola línea.Herramienta MIME Base64
- Padding (relleno)
- La longitud del resultado de la codificación Base64 debe ser un múltiplo de 4. Cuando el número de bytes de entrada no es un múltiplo de 3, el final se rellena con el carácter =. El Base64 estándar usa padding, Base64URL generalmente lo omite.Herramienta de Padding Base64
- Alfabeto Base64 (Alphabet)
- El conjunto de 64 caracteres utilizados en la codificación Base64. El alfabeto Base64 estándar es: A-Z (26), a-z (26), 0-9 (10), +, /, total 64 caracteres, más el carácter de relleno =.
- btoa / atob
- API nativas del navegador para codificación/decodificación Base64. btoa (binary to ASCII) se usa para codificar, atob (ASCII to binary) para decodificar. Tenga en cuenta que estas API solo admiten el conjunto de caracteres Latin-1. Para procesar caracteres chinos, debe combinarlas con transcodificación UTF-8.
- Data URI Scheme
- Un formato URI que permite incrustar archivos pequeños directamente en una URL, con el formato data:[<mediatype>][;base64],<data>. Se usa a menudo para incrustar íconos pequeños e imágenes de fondo CSS para reducir las solicitudes HTTP.Herramienta Data URIBase64 a imagen
- HTTP Basic Authentication
- Un método de autenticación en el protocolo HTTP. El nombre de usuario y la contraseña se concatenan con dos puntos, se codifican en Base64 y se transmiten en el encabezado de solicitud Authorization. El formato es: Authorization: Basic <base64(username:password)>.Constructor de encabezados Auth
- Tasa de aumento de tamaño Base64
- La proporción en que aumenta el volumen de datos después de la codificación Base64. Cada 3 bytes (24 bits) se codifican en 4 caracteres Base64, por lo que el volumen aumenta en aproximadamente un 33% (4/3 ≈ 1.333). Con padding, la tasa de aumento de tamaño es ligeramente mayor.
Comparación de las tres variantes de Base64
| Característica | Standard | URL-Safe | MIME |
|---|---|---|---|
| Caracteres especiales | + / | - _ | + / |
| Padding (=) | Se usa | Generalmente se omite | Se usa |
| Saltos de línea | Ninguno | Ninguno | Salto cada 76 caracteres |
| Estándar | RFC 4648 §4 | RFC 4648 §5 | RFC 2045 |
| Casos típicos | Data URI, codificación general | JWT, parámetros URL, nombres de archivo | Adjuntos de correo, transmisión SMTP |
Tabla comparativa de codificaciones de la serie Base
| Codificación | Núm. caracteres | Características del juego de caracteres | Aumento de tamaño | Uso típico |
|---|---|---|---|---|
Base16 (Hex) | 16 | 0-9, A-F | 100% | Depuración, visualización de hashes |
Base32 | 32 | A-Z, 2-7 (mayúsculas sin confusión) | 60% | DNS, claves TOTP, códigos QR |
Base58 | 58 | Excluye caracteres confundibles 0/O/I/l | 38% | Direcciones Bitcoin, criptomonedas |
Base62 | 62 | A-Z, a-z, 0-9 | 34% | Acortadores URL, codificación de IDs |
Base64 | 64 | A-Z, a-z, 0-9, +, / | 33% | Data URI, MIME, JWT (variante URL-Safe) |
Authoritative References
- Comparación segura de cadenas
- Conversor Binario
- Cifrado César
- Código Morse
- Hexadecimal
- Video a Base64
- Base64 a Video
- Imagen a Base64
- Base64 a imagen
- Texto a Base64
- Base64 a texto
- Verificador de hash de archivo
- Archivo a Base64
- Base64 a archivo
- Audio a Base64
- Base64 a Audio
- Cifrar y descifrar AES
- Cifrado y descifrado DES
- Codificador y Decodificador Base32
- Codificar y decodificar Base58
- Codificación Base64
- Decodificación Base64
- Comparador de Base64
- Divisor Base64
- Fusionar Base64 multilínea
- Formato Base64
- Validador de Base64
- Codificación Base64 por lotes
- Decodificador Base64 por lotes
- Limpieza de Base64
- Manejo de padding Base64
- Estadísticas de longitud Base64
- Base64 a Hexadecimal
- Conversor Base64 DataURL
- Convertidor Base64-Hex
- Codificador Base85
- Generador y validador HMAC
- Derivación de Clave PBKDF2
- Hash MD5
- Hash SHA-256
- SHA1 Hash
- Hash SHA512
- Decodificador, Verificador y Generador JWT
- Codificador y decodificador de entidades HTML
- Escape de Unicode
- Codificación URL
- Base64 URL Safe
- MIME Base64
- Ofuscador de Java
- Ofuscador de JS
- Ofuscador de PHP
- Ofuscador de Python