¿Qué es la codificación Base64? Una explicación completa
Respuesta rápida
La codificación Base64 convierte datos binarios en texto utilizando 64 caracteres imprimibles (A-Z, a-z, 0-9, +, /). Cada 3 bytes de entrada se convierten en 4 Base64 caracteres. Base64 es reversible (no está cifrado) y aumenta el tamaño de los datos en aproximadamente un 33 %. Utilice nuestro codificador y decodificador Base64 gratuito para realizar conversiones en su navegador.
Introducción
Base64 es un esquema de codificación de binario a texto que convierte datos binarios en una representación de cadena ASCII utilizando 64 caracteres imprimibles. Está definido por RFC 4648 y se usa comúnmente para codificar datos que deben transmitirse a través de medios diseñados para manejar texto: archivos adjuntos de correo electrónico (MIME), datos URLs en HTML/CSS, JWT partes de token y JSON cargas útiles que contienen datos binarios. Base64 es codificación, no encriptación; es completamente reversible y no requiere clave. Cualquiera puede decodificar Base64, por lo que no proporciona confidencialidad.
Paso a paso
-
Comprender el conjunto de caracteres.
Base64 utiliza 64 caracteres: A-Z (26), a-z (26), 0-9 (10), + y / (2). El carácter = se utiliza para el relleno cuando la longitud de entrada no es múltiplo de 3. La variante segura URL reemplaza + con - y / con _ y omite el relleno.
-
Aprenda cómo funciona la codificación
Base64 procesa la entrada en bloques de 3 bytes (24 bits). Cada bloque de 24 bits se divide en cuatro grupos de 6 bits. Cada valor de 6 bits (0-63) se asigna a uno de los 64 caracteres. Si la entrada no es múltiplo de 3, se agrega relleno (=): 1 byte de entrada → 2 Base64 caracteres + ==, 2 bytes → 3 caracteres + =.
-
Entender el tamaño del techo
Base64 aumenta el tamaño de los datos en aproximadamente un 33 %: cada 3 bytes se convierte en 4 caracteres. Un archivo de 1 MB se convierte en ~1,33 MB cuando se codifica con Base64. Esta sobrecarga es la compensación por la compatibilidad de sólo texto.
-
Distinguir la codificación del cifrado
Base64 está codificando, no encriptando. Es reversible sin llave: cualquiera puede decodificarlo. Base64 no proporciona confidencialidad; sólo convierte binario a texto para su transporte. Nunca utilice Base64 para almacenar contraseñas o secretos.
Ejemplos
Codificar texto
Aporte: Hello, World!
Producción: SGVsbG8sIFdvcmxkIQ==
Codificar datos binarios (se muestran como hexadecimal)
Aporte: Bytes: 0x00 0x01 0x02
Producción: AAEC
URL-seguro Base64 (estilo JWT)
Aporte: Standard: SGVsbG8= → URL-safe: SGVsbG8 (no padding, - and _ for + and /)
Producción: Utilizado en JWT tokens y URL parámetros
Problemas comunes
- Tratar Base64 como cifrado: Base64 es reversible sin una clave. Cualquiera puede decodificarlo. Nunca lo utilices para proteger datos confidenciales.
- Caracteres que no son ASCII: btoa() ingenuo se lanza en Unicode. Utilice TextEncoder + btoa(unescape(encodeURIComponent(text))) o una herramienta compatible con UTF-8.
- Eliminación de relleno: el relleno = es parte de la codificación. Quitarlo interrumpe la decodificación (aunque algunos decodificadores pueden reconstruirla).
- Gastos generales de tamaño: Base64 agrega ~33 % al tamaño de los datos. Para archivos grandes, esto es importante; Considere si la codificación es necesaria.
Consejos
- Utilice Base64 para Datos URLs para incrustar imágenes pequeñas en HTML/CSS sin una solicitud HTTP separada.
- Utilice URL-safe Base64 (reemplace + con -, / con _, tira de relleno) para los tokens URLs y JWT.
- Base64 no es cifrado; utilícelo por compatibilidad de transporte, no por confidencialidad.
- Utilice nuestro codificador y decodificador Base64 para una conversión privada e instantánea en su navegador.