Codificar y decodificar texto plano o binario en Base64 con soporte de charset.
Cómo transformar flujos binarios arbitrarios en secuencias de texto ASCII seguras para transmisión web.
Los bytes estándar constan de 8 bits (octetos). Base64 divide una secuencia de bytes en bloques de 6 bits (2^6 = 64 posibles valores: A-Z, a-z, 0-9, "+" y "/"). Cada 3 bytes de entrada (24 bits) se traducen en exactamente 4 caracteres Base64. Esto genera un aumento matemático predecible del 33,3 % en el tamaño de los datos, con el propósito de garantizar que flujos binarios (imágenes, certificados, hashes) atraviesen protocolos de transporte basados en texto, como JSON, cabeceras HTTP o correos MIME, sin corromperse.
Si la longitud del payload original no es múltiplo exacto de 3 bytes, el último bloque de 24 bits se completa con ceros a la derecha y se añaden caracteres "=" para indicar cuántos bytes ficticios se rellenaron: un "=" si sobraron 2 bytes, o dos "=" si sobró 1 byte. Aunque muchas API modernas toleran cadenas sin padding, los decodificadores estrictos exigen el relleno completo según la norma RFC 4648.
En Base64 estándar, los índices 62 y 63 corresponden a "+" y "/". En URL o nombres de archivo, estos caracteres tienen significados reservados, como separadores de rutas o espacios. La variante URL-safe (RFC 4648, sección 5) sustituye "+" por "-" y "/" por "_", lo que facilita su inserción en parámetros de consulta y tokens JWT sin necesidad de percent-encoding adicional.
No. Base64 es exclusivamente un esquema de codificación para representar datos binarios con caracteres imprimibles. No provee ninguna confidencialidad: cualquiera puede decodificarlo al instante.
Porque cada 3 bytes (24 bits) de información se reempaquetan en 4 caracteres ASCII de 8 bits cada uno, es decir 32 bits en total. La proporción matemática es 4/3, alrededor del 133 % del tamaño original.
Conviene para incrustar recursos pequeños, por ejemplo iconos en CSS o adjuntos MIME, y para transportar binarios por canales de solo texto. Es mejor evitarlo con archivos grandes, porque el 33 % de sobrecarga y la imposibilidad de transmitir en streaming lo hacen menos eficiente que una carga binaria directa.