Base64 transporta bytes como texto; no oculta secretos

Base64 sirve cuando un canal de texto necesita transportar bytes. Cambia su representación, no quién puede entenderlos ni garantiza que ocupen menos.

Cuenta bytes antes que letras

Base64 estándar con relleno representa cada 3 bytes mediante 4 caracteres y completa el último grupo con = cuando hace falta. Divide los bytes entre 3, redondea hacia arriba y multiplica por 4 para obtener la longitud.

Un carácter puede necesitar más de 1 byte UTF-8. Un texto árabe corto puede producir más caracteres codificados que otro latino con igual número de letras.

Referencias: RFC 4648 — Base encodings, padding and security considerations

Codificar no aporta confidencialidad

Quien tenga el valor normalmente puede decodificarlo sin clave secreta. No uses Base64 para proteger una contraseña ni esconder información en un enlace compartido.

Trata el resultado con la misma sensibilidad que el original. Impedir la lectura requiere medidas de seguridad apropiadas, no otra forma de escribir los datos.

Referencias: RFC 4648 — Base encodings, padding and security considerations

Define qué deberían contener los bytes

Esta herramienta codifica texto en UTF-8 y decodifica a texto UTF-8 válido. Una imagen codificada puede ser Base64 correcto y no ser adecuada para este decodificador de texto.

La variante base64url de algunos enlaces difiere de Base64 estándar. No añadas ni quites caracteres al azar para forzar la aceptación; identifica qué variante espera el origen.

Referencias: RFC 4648 — Base encodings, padding and security considerations

Ejemplo: las letras no determinan el tamaño codificado

Hi! ocupa 3 bytes UTF-8 y se convierte en SGkh: 4 caracteres sin relleno. Decodificar recupera el mismo texto sin contraseña.

La palabra árabe مرحبا tiene 5 letras pero 10 bytes UTF-8. Se codifica como 2YXYsdit2KjYpw==, de 16 caracteres. El tamaño depende de los bytes; los 2 signos = no significan que se borraran 2 letras originales.

Referencias