UltKit

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.

Modo

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 _.

  1. 0A
  2. 1B
  3. 2C
  4. 3D
  5. 4E
  6. 5F
  7. 6G
  8. 7H
  9. 8I
  10. 9J
  11. 10K
  12. 11L
  13. 12M
  14. 13N
  15. 14O
  16. 15P
  17. 16Q
  18. 17R
  19. 18S
  20. 19T
  21. 20U
  22. 21V
  23. 22W
  24. 23X
  25. 24Y
  26. 25Z
  27. 26a
  28. 27b
  29. 28c
  30. 29d
  31. 30e
  32. 31f
  33. 32g
  34. 33h
  35. 34i
  36. 35j
  37. 36k
  38. 37l
  39. 38m
  40. 39n
  41. 40o
  42. 41p
  43. 42q
  44. 43r
  45. 44s
  46. 45t
  47. 46u
  48. 47v
  49. 48w
  50. 49x
  51. 50y
  52. 51z
  53. 520
  54. 531
  55. 542
  56. 553
  57. 564
  58. 575
  59. 586
  60. 597
  61. 608
  62. 619
  63. 62+ -
  64. 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.

EntradaBytesEstándarSeguro para URLLongitud
U1VQ==VQ4
Ul2VWw=VWw4
Ult3VWx0VWx04
UltK4VWx0Sw==VWx0Sw8
UltKi5VWx0S2k=VWx0S2k8
UltKit6VWx0S2l0VWx0S2l08

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.