Codificar y decodificar Base64

Codifica texto o archivos a Base64 y decodifica cadenas de vuelta a bytes en el navegador. Incluye ejemplos de relleno, el alfabeto RFC 4648 y la variante segura para URL.

Todos los cálculos se ejecutan en el navegador. Nada de lo que introduce se envía a un servidor.

01 calculadora

Los resultados se actualizan al escribir. Ctrl/Cmd+Enter copia el resultado principal.

Resultado

    Mostrar el procedimiento

      Codificar y decodificar Base64 convierte bytes arbitrarios en una cadena ASCII con el alfabeto RFC 4648, y revierte esa cadena a los bytes originales. El modo texto acepta una codificación de caracteres como UTF-8; el modo archivo lee una subida mediante FileReader del navegador y puede emitir un URI data: para incrustar. La codificación no es cifrado. Cualquiera que reciba la cadena puede decodificarla.

      Toda la codificación y decodificación se ejecuta en el navegador. Nada de lo que pegas se envía a un servidor.

      Codificar texto o un archivo a Base64

      Concept diagram: Entradas leads to Codificar texto o un archivo a Bas… leads to ResultadoEntradasCodificar texto o unarchivo a Bas…Resultado
      Codificar texto o un archivo a Base64.

      La codificación toma bytes en bruto y escribe una cadena de A a Z, a a z, 0 a 9, más, barra y relleno =. Pega texto o elige un archivo, selecciona codificación de caracteres cuando la fuente es texto, y lee la salida.

      El modo archivo conviene para imágenes pequeñas y documentos que deben viajar dentro de JSON, XML o correo sin un canal binario.

      La salida es segura para transporte por sistemas que corrompen binario arbitrario, como pasarelas de correo antiguas o copiar y pegar en XML. Es más larga que la entrada por diseño. Entrada vacía no válida no produce cadena; la herramienta espera bytes antes de emitir caracteres.

      Decodificar una cadena Base64 de vuelta a datos

      Concept diagram: Entradas leads to Decodificar una cadena Base64 de v… leads to ResultadoEntradasDecodificar una cadenaBase64 de v…Resultado
      Decodificar una cadena Base64 de vuelta a datos.

      La decodificación revierte la búsqueda en el alfabeto, reconstruye el flujo de bits original y devuelve texto o un archivo descargable. Los caracteres de relleno = al final son significativos: marcan cuántos bytes había en el grupo final incompleto. Caracteres fuera del alfabeto provocan un error claro en lugar de una decodificación parcial silenciosa.

      A menudo se ignora el espacio en blanco para que cadenas copiadas de certificados PEM o cuerpos MIME sigan funcionando. Una cadena que parece Base64 pero usa el alfabeto seguro para URL necesita el modo de decodificación seguro para URL, o guion y guion bajo serán rechazados como ilegales en el alfabeto estándar.

      Entender cómo funciona la codificación Base64

      Process with 3 steps: Enter how Base64 encoding works; Read the main result; Check the breakdown1Enter how Base64encoding works2Read the main result3Check the breakdown
      Entender cómo funciona la codificación Base64.

      Base64 procesa la entrada en bloques de tres bytes (24 bits). Esos 24 bits se dividen en cuatro grupos de 6 bits. Cada valor de 6 bits es un índice de 0 a 63 en el alfabeto de 64 caracteres. Tres bytes de entrada se convierten por tanto en cuatro caracteres de salida.

      Bytes:  [ byte1 ][ byte2 ][ byte3 ]
      Bits:   aaaaaaaa bbbbbbbb cccccccc
      Groups: aaaaaa aabbbb bbbbcc cccccc
      Chars:  Char1  Char2  Char3  Char4

      Cuando quedan menos de tres bytes, el codificador sigue emitiendo cuatro caracteres pero añade relleno para que el decodificador conozca la longitud original. La reagrupación de bits es todo el algoritmo; no hay suma de comprobación ni clave.

      Codificar la palabra Dog paso a paso

      Process with 3 steps: Enter Encode word Dog step by step; Read the main result; Check the breakdown1Enter Encode word Dogstep by step2Read the main result3Check the breakdown
      Codificar la palabra Dog paso a paso.

      La palabra Dog son tres bytes ASCII, así que llena un grupo Base64 y se codifica sin caracteres de relleno. La salida del fixture es RG9n. Recorrer los bytes a bits, reagrupar en índices de 6 bits y leer el alfabeto RFC 4648 muestra por qué aparecen esos cuatro caracteres y cómo sigue cualquier bloque de tres bytes el mismo camino.

      1. Escribe los bytes. D = 0x44 = 01000100 o = 0x6F = 01101111 g = 0x67 = 01100111

      2. Concatena 24 bits. 01000100 01101111 01100111

      3. Divide en grupos de 6 bits. 010001 000110 111101 100111

      4. Convierte cada grupo a índice decimal. 17, 6, 61, 39

      5. Consulta el alfabeto. Índice 17 = R, 6 = G, 61 = 9, 39 = n

      Resultado: RG9n. Decodificar RG9n devuelve los tres bytes originales y el texto Dog bajo UTF-8 o ASCII.

      Entender el relleno con el signo igual

      Concept diagram: Entradas leads to Entender el relleno con el signo i… leads to ResultadoEntradasEntender el relleno conel signo i…Resultado
      Entender el relleno con el signo igual.

      El relleno aparece cuando el recuento de bytes no es múltiplo de tres. Un byte sobrante produce dos caracteres del alfabeto y dos signos =. Dos bytes sobrantes producen tres caracteres y un =. Los fixtures DoRG8= y DogsRG9ncw== muestran ambos casos de resto junto a la palabra de tres bytes sin relleno Dog.

      EntradaBytesCodificadoRelleno
      Dog3RG9nninguno
      Do2RG8=un =
      Dogs4RG9ncw==dos =

      Do son dos bytes: 01000100 01101111. Tras agrupar en 6 bits solo hay bits suficientes para tres caracteres significativos (RG8), y un = de relleno ocupa la cuarta ranura. Dogs son cuatro bytes: un grupo completo de tres bytes codificado como RG9n, luego un resto de un byte codificado como cw==. Quitar el relleno a mano sin ajustar la longitud de bits rompe la decodificación; deja los caracteres = al pegar.

      Leer el alfabeto Base64

      Concept diagram: Entradas leads to Leer el alfabeto Base64 leads to ResultadoEntradasLeer el alfabeto Base64Resultado
      Leer el alfabeto Base64.

      El RFC 4648 define 64 caracteres más la marca de relleno =. Los índices 0 a 25 son A a Z, 26 a 51 son a a z, 52 a 61 son 0 a 9, el índice 62 es +, y el 63 es /.

      El índice 0 es A, no 0, lo que confunde a quien espera que los dígitos encabecen el alfabeto.

      Rango de índiceCaracteres
      0 a 25A a Z
      26 a 51a a z
      52 a 610 a 9
      62+
      63/
      relleno=

      El panel de alfabeto de la calculadora lista la misma tabla que usa el codificador, para comprobar un carácter sospechoso contra el conjunto estándar. La cadena completa es ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/.

      Usar la variante Base64 segura para URL

      Concept diagram: Entradas leads to Usar la variante Base64 segura par… leads to ResultadoEntradasUsar la variante Base64segura par…Resultado
      Usar la variante Base64 segura para URL.

      El alfabeto seguro para URL (base64url) sustituye + por - y / por _. En algunos protocolos puede omitirse el relleno. Los JSON Web Tokens usan esta variante para que los segmentos del token puedan ir en URLs y cabeceras HTTP sin codificar porcentualmente los caracteres más y barra.

      Las cadenas estándar y seguras para URL no son intercambiables. Decodificar la carga de un JWT con el alfabeto estándar falla con guiones. La herramienta ofrece un modo seguro para URL explícito en codificación y decodificación. Codificar porcentualmente una URL es un problema distinto; usa la página Codificar y decodificar URL cuando el objetivo sea escape RFC 3986 en lugar de Base64.

      Tener en cuenta el aumento de tamaño

      Concept diagram: Entradas leads to Tener en cuenta el aumento de tama… leads to ResultadoEntradasTener en cuenta elaumento de tama…Resultado
      Tener en cuenta el aumento de tamaño.

      Cada tres bytes se convierten en cuatro caracteres, así la longitud codificada es unas 4/3 de la entrada, un aumento del 33 por ciento antes de saltos de línea. El relleno puede añadir uno o dos caracteres extra en el grupo final. Los URI de datos y adjuntos de correo sienten pronto ese coste: una imagen de 300 KB pasa a unos 400 KB de texto.

      encoded_length ≈ 4 × ceil(byte_length / 3)

      El ajuste de línea a 76 caracteres, habitual en MIME, añade bytes de nueva línea encima. Prefiere adjuntos binarios o formatos comprimidos cuando importe el tamaño; usa Base64 cuando el canal genuinamente no pueda llevar bytes en bruto.

      Elegir una codificación de caracteres

      Concept diagram: Entradas leads to Elegir una codificación de caracte… leads to ResultadoEntradasElegir una codificaciónde caracte…Resultado
      Elegir una codificación de caracteres.

      Base64 codifica bytes, no caracteres abstractos. Las mismas letras producen bytes distintos bajo UTF-8, UTF-16, Shift JIS o Big5. Decodificar e interpretar con el juego de caracteres equivocado produce mojibake aunque la capa Base64 fuera perfecta, así que el charset del modo texto debe coincidir con el productor al codificar y con el consumidor al decodificar.

      CharsetUso habitual
      UTF-8Predeterminado para texto moderno y APIs
      Windows-1252Texto europeo occidental heredado
      UTF-16 LE / BEAlgunas cargas Windows y Java
      Shift JISTexto japonés antiguo
      Big5Texto chino tradicional antiguo

      Para la palabra Dog, ASCII y UTF-8 producen los mismos tres bytes, así RG9n es idéntico. El texto no ASCII diverge. Elige el charset que coincida con el productor antes de codificar, y el mismo charset después de decodificar, o el ida y vuelta parecerá un fallo de Base64 cuando el error está aguas arriba.

      Preguntas frecuentes

      ¿Es Base64 cifrado?

      No. Base64 es una codificación que cualquiera puede revertir con el alfabeto público. No oculta nada. Usa un algoritmo criptográfico real cuando haga falta confidencialidad; usa Base64 cuando un canal necesite bytes seguros en ASCII.

      ¿Por qué la salida Base64 termina con signos igual?

      Los caracteres = son relleno. Marcan que el grupo final de entrada tenía uno o dos bytes en lugar de tres. Do se codifica como RG8= y Dogs como RG9ncw==. Conserva el relleno al decodificar salvo que el protocolo documente que se eliminó.

      ¿A qué se codifica Dog?

      Dog se codifica como RG9n sin relleno, porque tres bytes llenan exactamente un grupo Base64. La reagrupación de bits paso a paso se muestra en el ejemplo trabajado de esta página.

      ¿Cuál es la diferencia entre Base64 estándar y seguro para URL?

      Base64 seguro para URL usa - y _ en lugar de + y /. Los JWT y algunas incrustaciones en nombres de archivo usan el alfabeto seguro para URL. Decodificar con el alfabeto equivocado falla con esos caracteres sustituidos.

      ¿Cuánto más grande es Base64 que el original?

      Aproximadamente un tercio más. Tres bytes se convierten en cuatro caracteres, así la relación es 4/3 antes de relleno y saltos de línea. Una carga de 3.000 bytes se convierte en 4.000 caracteres Base64.

      ¿Puede Base64 codificar un archivo, no solo texto?

      Sí. El modo archivo lee la subida en el navegador y codifica sus bytes en bruto. La vía inversa decodifica a un blob descargable. Archivos grandes aumentan el uso de memoria en la pestaña; mantén subidas modestas.

      ¿Por qué el texto decodificado se ve mal tras una decodificación correcta?

      La capa Base64 restauró los bytes, pero la codificación de caracteres usada para interpretarlos no coincide con el productor. Prueba UTF-8 primero, luego el charset que usa realmente el sistema origen.

      ¿Esta herramienta sube secretos pegados?

      No. Codificación y decodificación se ejecutan localmente. Claves API, tokens y fragmentos de certificado pegados en el cuadro no se envían a un servidor. Esa promesa coincide con la regla de diseño de todas las páginas de codificación en Quick Calculators.

      ¿Es Base64 lo mismo que codificación URL?

      No. Base64 mapea binario a un alfabeto de 64 caracteres para transporte. La codificación URL (codificación porcentual) escapa caracteres reservados dentro de URIs según RFC 3986. Resuelven problemas distintos y no son sustitutos.

      ¿Qué RFC define el alfabeto?

      El RFC 4648 define los alfabetos Base64 estándar y seguro para URL y las reglas de relleno usadas aquí. Documentos antiguos como el RFC 2045 describen Base64 en el contexto MIME con mecánica similar.

      Resumen

      Codificar y decodificar Base64 mapea bytes al alfabeto RFC 4648 en grupos de 6 bits y revierte el proceso localmente en el navegador. Dog se convierte en RG9n, Do en RG8=, y Dogs en RG9ncw==, ilustrando el relleno para restos de uno y dos bytes.

      El alfabeto seguro para URL cambia +// por -/_, la salida crece aproximadamente un tercio, y la elección de juego de caracteres decide qué bytes alimenta el modo texto al codificador. Nada pegado se sube.