Base64
Escribe o pega texto y se codifica o decodifica sobre la marcha.
0 caracteres · 0 bytes
Resultado
Cómo funciona
Base64 reescribe bytes arbitrarios con 64 caracteres que sobreviven al paso por sistemas pensados para texto, como el correo electrónico y las direcciones web.
Tres bytes se convierten en cuatro caracteres, así que el resultado es aproximadamente un tercio más largo que el original. Los signos igual del final son relleno, que se usa cuando el número de bytes no es divisible entre tres.
Base64 es una codificación, no un cifrado. Cualquiera puede decodificarlo, así que no protege nada. Úsalo para transportar datos, nunca para ocultarlos.
El texto se codifica en UTF-8 antes de convertirlo, por eso funcionan las letras con tilde, la eñe y los emojis. La función integrada del navegador, por sí sola, solo admite caracteres por debajo de 256.
La variante segura para URL sustituye el signo más por un guion y la barra por un guion bajo. Al decodificar, aquí se acepta cualquiera de las dos variantes, con o sin relleno.
Cómo funciona la herramienta
Al codificar, la herramienta convierte primero el texto en bytes UTF-8 y después deja que la función btoa del navegador los escriba en Base64. Al decodificar, quita todos los espacios en blanco, también los saltos de línea dentro del texto, vuelve a convertir los guiones y los guiones bajos en signos más y barras, y añade signos igual hasta que la longitud sea divisible entre cuatro. Después, la función atob del navegador decodifica el texto, y los bytes se leen como UTF-8 en modo estricto: los bytes que no forman UTF-8 válido dan un mensaje de error en lugar de caracteres de sustitución. Bajo el campo se ven los caracteres, contados como los ve un lector, y los bytes: un emoji con tono de piel es un carácter pero ocho bytes en UTF-8, y son los bytes los que fijan la longitud del resultado.
Ejemplo
Sí se convierte en tres bytes en UTF-8: 53 para la S y C3 AD para la í. Los 24 bits se dividen en cuatro grupos de seis: 010100, 111100, 001110 y 101101, que son 20, 60, 14 y 45. En el alfabeto de Base64, donde A–Z son 0–25, a–z son 26–51 y las cifras 0–9 son 52–61, eso da U, 8, O y t. El resultado es U8Ot, sin relleno, porque tres bytes caben justos en cuatro caracteres.
Hola son cuatro bytes y da SG9sYQ==. El cuarto byte solo llena dos caracteres de un nuevo grupo de cuatro, y los dos signos igual completan el grupo.
Casos límite
La herramienta trabaja con texto. Un Base64 con datos binarios, como una imagen, suele dar el mensaje de error, porque los bytes no son UTF-8 válido.
El Base64 del correo electrónico va partido en líneas: el RFC 2045 admite como máximo 76 caracteres por línea y dice que los saltos de línea deben ignorarse al decodificar. Como la herramienta quita antes todos los espacios en blanco, una parte de texto codificada de un correo se puede pegar tal cual.
Una cadena cuya longitud deja resto 1 al dividirla entre cuatro nunca puede ser válida. Un último carácter suelto solo lleva seis bits, que no bastan para un byte completo, así que el algoritmo del WHATWG Infra Standard, que sigue atob, rechaza esa entrada. SG9sY, que es SG9sYQ== sin los tres últimos caracteres, da el mensaje de error, mientras que SG9sYQ, sin signos igual, se decodifica como Hola.