Codificar Base64
Convierta texto o un archivo en Base64, o decodifique Base64 para recuperar texto legible. El Unicode se trata correctamente, el alfabeto seguro para URL está a un clic y la decodificación acepta cualquiera de los dos alfabetos, con o sin relleno.
0 caracteres · 0 palabras · 0 líneas
0 caracteres · 0 palabras · 0 líneas
Funciona por completo en esta pestaña del navegador. Su texto nunca se sube ni se guarda.
El alfabeto Base64
Índice → carácter según RFC 4648. Los dos últimos, resaltados, cambian en la variante segura para URL: el 62 es + o -, el 63 es / o _.
- 0A
- 1B
- 2C
- 3D
- 4E
- 5F
- 6G
- 7H
- 8I
- 9J
- 10K
- 11L
- 12M
- 13N
- 14O
- 15P
- 16Q
- 17R
- 18S
- 19T
- 20U
- 21V
- 22W
- 23X
- 24Y
- 25Z
- 26a
- 27b
- 28c
- 29d
- 30e
- 31f
- 32g
- 33h
- 34i
- 35j
- 36k
- 37l
- 38m
- 39n
- 40o
- 41p
- 42q
- 43r
- 44s
- 45t
- 46u
- 47v
- 48w
- 49x
- 50y
- 51z
- 520
- 531
- 542
- 553
- 564
- 575
- 586
- 597
- 608
- 619
- 62+ -
- 63/ _
Cuánto crece la salida
Cada 3 bytes de entrada se convierten en 4 caracteres; un grupo final de 1 o 2 bytes se rellena con = en Base64 estándar y se deja sin relleno en la forma segura para URL.
| Entrada | Bytes | Estándar | Seguro para URL | Longitud |
|---|---|---|---|---|
U | 1 | VQ== | VQ | 4 |
Ul | 2 | VWw= | VWw | 4 |
Ult | 3 | VWx0 | VWx0 | 4 |
UltK | 4 | VWx0Sw== | VWx0Sw | 8 |
UltKi | 5 | VWx0S2k= | VWx0S2k | 8 |
UltKit | 6 | VWx0S2l0 | VWx0S2l0 | 8 |
Qué hace Base64
Base64, definido en la RFC 4648, escribe bytes arbitrarios con 64 caracteres ASCII imprimibles: A–Z, a–z, 0–9, + y /. Cada grupo de tres bytes (24 bits) se divide en cuatro números de 6 bits, y cada número elige un carácter del alfabeto. Cuando la longitud de la entrada no es múltiplo de tres, el último grupo se rellena con uno o dos signos =. El resultado siempre ocupa alrededor de un 33 % más que la entrada: 4 caracteres por cada 3 bytes.
Existe porque muchos canales se diseñaron para texto. El correo electrónico (MIME), las URL data: en HTML y CSS, los campos JSON que transportan imágenes o certificados y los encabezados de autenticación HTTP Basic usan Base64 para mover datos binarios de forma segura. No es cifrado y no oculta nada; para decodificar no hace falta ninguna clave.
Unicode y la variante segura para URL
Base64 codifica bytes, no letras, así que el texto debe convertirse antes en bytes. Esta herramienta siempre usa UTF-8, la codificación sobre la que funciona la web: la é ocupa dos bytes y un emoji, cuatro. La función btoa integrada en el navegador, usada sola, lanza un error con cualquier carácter por encima de U+00FF; por eso los codificadores ingenuos fallan con tildes y emojis. Aquí el texto pasa primero por TextEncoder, y la decodificación lo revierte con TextDecoder. Si los bytes decodificados no son UTF-8 válido (una imagen, un archivo zip), la herramienta los muestra en hexadecimal en lugar de texto ilegible.
El Base64 estándar usa + y /, que tienen significado en las URL y en los nombres de archivo. El alfabeto seguro para URL de la sección 5 de la RFC 4648 los sustituye por - y _, y normalmente se omite el relleno. Los JSON Web Tokens usan exactamente esta forma. El decodificador acepta ambos alfabetos y la falta de relleno, así que puede pegar cualquiera de los dos.
Codificar archivos e imágenes en Base64
Elija un archivo y la herramienta lo lee en local con FileReader y devuelve su Base64, o una URL data: completa con el tipo MIME del archivo, lista para pegar en una etiqueta img o en un fondo CSS. Las imágenes incrustadas ahorran una petición HTTP, pero crecen un tercio y no pueden guardarse en caché por separado, así que convienen para iconos pequeños más que para fotos. Para imágenes con vista previa y fragmentos HTML y CSS listos para usar, recurra a Imagen a Base64.
Preguntas frecuentes
- ¿Por qué el resultado en Base64 es más largo que la entrada?
- Cada 3 bytes se convierten en 4 caracteres, así que el resultado mide unos 4/3 de la entrada, más hasta dos caracteres de relleno. El texto no ASCII es aún más largo, porque UTF-8 usa de dos a cuatro bytes por carácter.
- ¿Qué son los signos = al final de una cadena Base64?
- Relleno. Hacen que la longitud del resultado sea múltiplo de cuatro cuando la de la entrada no es múltiplo de tres. Un = indica que el último grupo tenía dos bytes; dos = indican que tenía un byte.
- ¿Por qué la decodificación Base64 falla con un error de carácter no válido?
- La entrada contiene algo ajeno al alfabeto, como un espacio dentro de una palabra, una comilla o un % de la codificación de URL. Los saltos de línea y la falta de relleno se toleran; los demás caracteres, no.
- ¿Es seguro codificar una contraseña en Base64?
- Base64 no ofrece ninguna protección. La autenticación HTTP Basic envía usuario:contraseña en Base64, y por eso solo debe usarse con HTTPS. Para proteger secretos, use cifrado o hashing de verdad.
- ¿Qué diferencia hay entre Base64 y Base64url?
- Solo dos caracteres y el relleno: Base64url usa - y _ en lugar de + y / y normalmente omite el =, de modo que el resultado puede ir en URL y nombres de archivo sin escapar.