¿Qué es Base64?
Base64 es una forma de escribir cualquier dato, sea texto, una imagen o un PDF, usando solo 64 caracteres que no dan problemas en ningún sistema: las letras de la A a la Z en mayúsculas y minúsculas, los números del 0 al 9 y los signos + y /. El signo = se usa como relleno al final. Está definido en el estándar RFC 4648.
Cada 3 bytes del original se convierten en 4 caracteres, así que el resultado ocupa un 33 % más que el original.
¿Para qué se usa?
- Adjuntos del correo: el email solo transporta texto, así que los archivos adjuntos viajan en Base64.
- Imágenes dentro de HTML o CSS: un icono pequeño se puede incrustar como data URI (
data:image/png;base64,…) y ahorrar una petición al servidor. - APIs y JSON: para enviar archivos o datos binarios dentro de un texto.
- Tokens JWT: sus tres partes van en Base64url.
- Autenticación básica HTTP: el usuario y la contraseña viajan en la cabecera
Authorizationcodificados en Base64.
Base64 no es cifrado
Cualquiera puede decodificar un Base64 al momento, sin ninguna clave: solo cambia la forma de escribir los datos. Por eso no sirve para proteger contraseñas ni información privada. Para eso hay que usar un hash como bcrypt o un cifrado de verdad.
¿Qué es Base64url?
Es una variante pensada para ir dentro de URL y nombres de archivo: cambia el + por - y la / por _, que en una URL tienen un significado especial, y suele quitar el relleno =. Es la que usan, por ejemplo, los tokens JWT.