logo
GeekFormat

Codificación Base64

Texto de entrada
0 caracteres

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 inflado de volumen en tiempo real, y los saltos de línea MIME cumplen con el estándar RFC 2045.

Relacionado

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

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 inflado 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

Cómo Usar

  1. Seleccione el modo: haga clic en Encode (codificar) o Decode (decodificar) para cambiar la dirección de procesamiento
  2. Seleccione la variante: Standard (estándar), URL-Safe (JWT/OAuth), MIME (formato correo con saltos de 76 caracteres)
  3. Ingrese el contenido: pegue el texto o la cadena Base64, se procesará automáticamente en tiempo real
  4. Vea las estadísticas: en la parte inferior se muestra el número de caracteres y la tasa de inflado de volumen (la codificación aumenta el volumen en aproximadamente un 33%)
  5. Copie el resultado: copie con un clic la cadena Base64 o el texto decodificado

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 inflado 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 imagen

¿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.

术语表

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 inflado 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 inflado es ligeramente mayor.

Comparación de las tres variantes de Base64

CaracterísticaStandardURL-SafeMIME
Caracteres especiales+ /- _+ /
Padding(=)Se usaGeneralmente se omiteSe usa
Saltos de líneaNingunoNingunoSalto cada 76 caracteres
EstándarRFC 4648 §4RFC 4648 §5RFC 2045
Casos típicosData URI, codificación generalJWT, parámetros URL, nombres de archivoAdjuntos de correo, transmisión SMTP

Tabla comparativa de codificaciones de la serie Base

CodificaciónNúm. caracteresCaracterísticas del juego de caracteresInflado de volumenUso típico
Base16 (Hex)160-9, A-F100%Depuración, visualización de hashes
Base3232A-Z, 2-7(mayúsculas sin confusión)60%DNS, claves TOTP, códigos QR
Base5858Excluye caracteres confundibles 0/O/I/l38%Direcciones Bitcoin, criptomonedas
Base6262A-Z, a-z, 0-934%Acortadores URL, codificación de IDs
Base6464A-Z, a-z, 0-9, +, /33%Data URI, MIME, JWT(variante URL-Safe)

Code Examples

Codificación Base64 en JavaScript (soporta chino UTF-8)

// 编码(支持 UTF-8 中文)
function b64Encode(str) {
  return btoa(unescape(encodeURIComponent(str)));
}

// 解码(支持 UTF-8 中文)
function b64Decode(str) {
  return decodeURIComponent(escape(atob(str)));
}

// URL-Safe 编码(用于 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

# Standard 编码(UTF-8)
encoded = base64.b64encode('Hello 世界'.encode('utf-8'))
print(encoded.decode())  # SGVsbG8g5LiW55WM

# Standard 解码
decoded = base64.b64decode(encoded).decode('utf-8')
print(decoded)  # Hello 世界

# URL-Safe 编码(用于 JWT / OAuth)
url_safe = base64.urlsafe_b64encode('Hello 世界'.encode('utf-8'))
print(url_safe.decode())  # SGVsbG8g5LiW55WM(无 padding 需手动去除)

# 去除 padding(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 世界";

        // Standard 编码
        String encoded = Base64.getEncoder()
            .encodeToString(text.getBytes(StandardCharsets.UTF_8));
        System.out.println(encoded); // SGVsbG8g5LiW55WM

        // Standard 解码
        String decoded = new String(
            Base64.getDecoder().decode(encoded), StandardCharsets.UTF_8);
        System.out.println(decoded); // Hello 世界

        // URL-Safe 编码(用于 JWT / URL)
        String urlSafe = Base64.getUrlEncoder().withoutPadding()
            .encodeToString(text.getBytes(StandardCharsets.UTF_8));
        System.out.println(urlSafe);

        // MIME 编码(76字符换行)
        String mime = Base64.getMimeEncoder()
            .encodeToString(text.getBytes(StandardCharsets.UTF_8));
    }
}

Authoritative References